
17 يوليوز 2026
اختبار تصحيح أخطاء رموز QR: كم يمكن لرموز QR أن تتحمل التلف؟
بقلم سعيد وارك · المؤسس
من شبه المؤكد أنك رأيت عبارة «يمكن لرمز QR أن يفقد 30% من مساحته ويظل يعمل». تبدو مطمئنة حتى اللحظة التي يتوقف فيها رمز مطبوع عن العمل ولا يستطيع أحد أن يخبرك لماذا. الخلاصة المختصرة لما أكدته اختباراتنا: رقم 30% يصف ما يمكن لرياضيات تصحيح الأخطاء (Reed-Solomon) أن تعيد بناؤه نظرياً، ولا علاقة له تقريباً بما ينجو في العالم الحقيقي. في هذا الدليل نفصل المواصفة عن الممارسة عبر قياسات قابلة لإعادة الإنتاج، ونبين أي أجزاء رمز QR يتعطل أولاً، ونقدم لك روتين اختبار من خمس خطوات يمكنك تكراره للتحقق من رموزك قبل طباعتها.
إذا كنت جديداً على هذه الإعدادات الأربعة، اقرأ أولاً شرح معاني مستويات تصحيح الأخطاء، ثم عُد إلى أرقام التلف هنا.
ما تعد به المواصفة فعلياً
يحدد معيار رموز QR، ISO/IEC 18004، أربعة مستويات لتصحيح الأخطاء. يضيف كل مستوى تكراراً للرموز (كلمات الشيفرة) بحيث يستطيع القارئ إعادة بناء المحتوى من رمز متضرر جزئياً:
| المستوى | استرداد المحو وفق المواصفة |
|---|---|
| L | 7% من كلمات الشيفرة |
| M | 15% من كلمات الشيفرة |
| Q | 25% من كلمات الشيفرة |
| H | 30% من كلمات الشيفرة |
يختبئ تحفظان في هذا الجدول.
أولاً، النسبة تنطبق على «كلمات الشيفرة المتاحة لإعادة البناء»، وليس على 7–30% من المربع الذي تراه بعينك. أنماط المحددات (المربعات الثلاثة الكبيرة)، وخطوط التوقيت، وكتل معلومات الشكل، ونمط المحاذاة كلها لا يحميها نفس آلية الاسترداد.
ثانياً، يفترض تحمل المحو أن الرموز التالفة معروفة وموزعة عبر الكتل المتشابكة. التلف الحقيقي ليس بهذا الترتيب أبداً: ملصق، أو قطرة قهوة، أو خط كي يحذف منطقة متصلة، وقد توقف ميزة بنيوية واحدة المسح قبل أن تبدأ إعادة البناء أصلاً.
هذه الفجوة بين النظرية والواقع هي بالضبط ما أشرنا إلى قياسه بدلاً من ترديد رقم تسويقي.
كيف قسنا (وكيف يمكنك إعادة التجربة)
لكي تبقى النتيجة صادقة وقابلة لإعادة الإنتاج، التجربة بأكملها سكربت مكرس في مستودع هذا الموقع على scripts/qr-damage-experiment.js. يستخدم نفس مرمز QR الذي يوفره هذا الموقع (qrcode الإصدار 1.5.4) وفكّاك مفتوح المصدر مستقل (jsqr الإصدار 1.4.0)، مع بذرة عشوائية ثابتة. يمكن إعادة توليد كل رقم أدناه عبر:
node scripts/qr-damage-experiment.js --seed 20260717 --trials 24
المحتوى هو عنوان وجهة حقيقي (https://www.qrgenerators.dev/)، بطول 29 حرفاً. هذا مهم، لأن طول المحتوى يغيّر شبكة الوحدات:
| المستوى | الشبكة (وحدات) | إصدار ISO |
|---|---|---|
| L | 25×25 | 2 |
| M | 29×29 | 3 |
| Q | 29×29 | 3 |
| H | 33×33 | 4 |
لكل مستوى ولدنا الرمز، وطبقنا نموذج تلف على شبكة الوحدات الخام، وعرضنا النتيجة على صورة نقطية عالية الدقة مع منطقة صمت سليمة، ثم حاولنا فك تشفيراً فعلياً. تمثل كل خلية 24 تجربة مستقلة. «نجح» تعني أن المحتوى فُك تشفيره بايتاً ببايت.
شغلنا أربعة نماذج تلف تقابل أنماط فشل من العالم الحقيقي:
- شعار في المركز — مربع أسود مصمت في المنتصف تماماً (الطريقة التي يضع بها معظم الناس شعارهم).
- خربشة داخلية — بقعة مربعة في المنطقة الداخلية للرمز (قلم، علامة، قهوة).
- لطخة ركنية — مربع في المنطقة السفلية اليمنى (الزاوية دون نمط محدد).
- علامات عشوائية — نثر وحدات مفردة تتحول إلى أسود (غبار، خدوش، عيوب طباعة).
ما قسناه — مستوى بمستوى
شعار مركزي
| مساحة التلف | L | M | Q | H |
|---|---|---|---|---|
| 5% | 0% | 100% | 100% | 100% |
| 10% | 0% | 0% | 100% | 100% |
| 15% | 0% | 0% | 0% | 100% |
| 20% | 0% | 0% | 0% | 0% |
النمط واضح: الشعار المركزي قابل للنجاة، لكن فقط إذا اخترت المستوى الصحيح. توفي L حتى عند 5%، ونجا M عند 5%، ونجا Q عند 10%، وكان H ما يزال يفك الشيفرة عند تغطية 15% من الرمز. هذه أقوى حجة عملية وأكثرها واقعية لاختيار المستوى H كلما نوت وضع شعار، لأن الشعار يقع في مركز الشبكة حيث تعيش البيانات.
خربشة داخلية
| مساحة التلف | L | M | Q | H |
|---|---|---|---|---|
| 5% | 4% | 42% | 54% | 75% |
| 10% | 0% | 17% | 33% | 42% |
| 15% | 0% | 0% | 8% | 42% |
| 20% | 0% | 0% | 0% | 4% |
الكتابة على وجه الرمز هي أكثر حوادث العالم الحقيقي شيوعاً، وتوضح الأرقام لماذا جدول المواصفة متفائل. حيث يقول ISO/IEC 18004 إن M يتحمل 15% وH يتحمل 30%، قياساتنا بلغت نجاحاً ذا معنى حول 5–10% عند M و10–15% عند H — أي ما يقارب ثلث النظري إلى نصفه، وفقط عندما صادفت البقعة نمط المحاذاة بالصدفة.
هناك أيضاً أثر ترتيبي واضح: عندما وقع الموضع الداخلي العشوائي على بنية المحاذاة، فشل حتى رمز كبير بمستوى H. الاسترداد ليس متناسباً ببساطة مع المساحة المغطاة؛ بل يعتمد على الوحدات التي يلمسها التلف.
لطخة ركنية (سفلية يمنى)
| مساحة التلف | L | M | Q | H |
|---|---|---|---|---|
| 5% | 0% | 0% | 0% | 100% |
| 8% | 0% | 0% | 0% | 0% |
هذا الصف الأقل بداهة والأكثر قيمة. الزاوية السفلية اليمنى لا تحمل نمط محدد، لذلك يفترض الناس أنها مكان آمن للضرر. ليست كذلك. الشبكات الأكبر تحمل نمط محاذاة واحد في هذه الزاوية، ولطخة كبيرة كافية لتغطيته هزمت كل المستويات — بما فيها H الذي تقول المواصفة إنه يسترد 30%. لاحظ الفرق بين 5% و8%: عند 5% لم يغطِ أثر اللطخة على أكبر شبكة (33×33) وحدة المحاذاة، ففك H كل شيء؛ وعند 8% ابتلعت نمط المحاذاة وانهار H إلى 0%. حسمت بضع وحدات من الموضع النتيجة.
علامات عشوائية
| مساحة التلف | L | M | Q | H |
|---|---|---|---|---|
| 5% | 0% | 0% | 0% | 0% |
| 10% | 0% | 0% | 0% | 0% |
هذه النتيجة هي التي تدحض مباشرة الأسطورة «أزل أي 30%». العلامات العشوائية المتناثرة تكاد حتماً تلمس محدداً أو خط توقيت أو معلومة شكل خلال أول بضعة بالمئة، وبمجرد حدوث ذلك، لا ينقذك أي مستوى من تصحيح الأخطاء. يفشل الكشف قبل أن تبدأ إعادة البناء أصلاً.
الخلاصة العملية لكل الجداول الأربعة: البنية تتفوق على التكرار. أبقِ أنماط المحددات الثلاثة، وخطوط التوقيت، ونمط المحاذاة السفلي الأيمن — عندما تكبر الشبكة لتحمله — سليمة، عندها فقط يبدأ مستوى تصحيح الأخطاء بالمساعدة.
روتين اختبار من خمس خطوات لرموزك الخاصة
خطأ معظم الناس أن يكرروا النسب النظرية بدلاً من اختبار الرمز الفعلي الذي سيذهب على المطوية أو الملصق أو العلبة. هذا هو الروتين الذي استخدمناه، معمماً ليطبق على تصميمك دون أدوات تتجاوز ما يوفره هذا الموقع.
الخطوة 1 — حدد سيناريو المسح أولاً. قرر الحجم الفيزيائي والمادة ومسافة النظر والإضاءة قبل توليد أي شيء، لأن هذه المتغيرات تحدد مستوى تصحيح الأخطاء الذي يستحق الاختبار أصلاً. بطاقة عمل تقرأ على مسافة ذراع تحت ضوء مكتب مشكلة مختلفة تماماً عن قائمة مشروبات مبتلّة بالتكاثف. اكتب السيناريو: هذا القرار يرسي كل اختيار لاحق، وهو خطوة يخطئها الجميع تقريباً. إذا كنت غير متأكد من الأبعاد الفيزيائية، يبين دليل حجم رموز QR كيف تحدد المسافة الحد الأدنى لحجم الطباعة.
الخطوة 2 — وّلد الرمز عند المستوى المرشح. استخدم مولد رموز QR في هذا الموقع مع ضبط تصحيح الأخطاء على H كمرشح افتراضي. إذا كان الرمز النهائي أكبر من ملصق ضخم وكان خطر التلف أو الشعار صفراً، فالنزول إلى M معقول؛ ابدأ من H ولا تهبط إلا إذا كسرت الوحدات الإضافية تخطيطك. صدّر بالحجم والدقة الفعليين اللذين ستستعملهما في الإنتاج — PNG بدقة 300 DPI أو SVG — بحيث يكون النمط الذي تختبره هو النمط الذي تطبعه.
الخطوة 3 — أعد إنتاج التلف الواقعي، لا ضجيجاً عشوائياً. بدلاً من «إزالة 30%»، أتلف الرمز بالطريقة التي سيتلف بها فعلاً: ضع شعارك فوق المركز، ولطّخ حبراً على الوجه، وغطِّ الزاوية السفلية اليمنى، وامرر خط كي في المنتصف. نماذجنا الأربعة تقابل تلك الحالات الأربع، ويُنتج كل نموذج عتبة فشل مختلفة. هذه خطوة تكتشف فيها أي نقطة فشل واحدة يعرضها تخطيطك بالذات.
الخطوة 4 — امسح للفك وسجل النتيجة. امسح بفكّاكين على الأقل: كاميرا هاتفك للفحص الواقعي، وفكّاك برمجي (مثل المستخدم في التجربة المرجعية) للتحقق القابل للتكرار والدقيق بايتاً ببايت. كرر كل حالة بنفس العدد من المرات، وبذات المسافة والزاوية، وسجل نجاحاً/فشلاً بدلاً من «يبدو جيداً». رمز يعمل مرة من 24 ليس رمزاً يعمل.
الخطوة 5 — اضبط وأعد الاختبار قبل أن تطبع أبداً. إذا قتل شعار مركزي بنسبة 10% فك الشيفرة عند المستوى M، أعِد التوليد عند H وأعد نفس الاختبار. قياساتنا تظهر أن الترتيب يتصرف بانتظام — يمنحك H نحو 10% هامشاً فوق M للضرر المركزي — فتستطيع ضبط التوقعات قبل إنفاق أموال الطباعة. توقف فقط عندما ينجو الرمز من سيناريوه الأسوأ لديك، لا أفضل الحالات.
جدول القرار: بأي مستوى تبدأ
| السيناريو | المستوى المعتاد | لماذا |
|---|---|---|
| رمز شاشة مؤقت أو بريد إلكتروني، بلا شعار، ظروف مضبوطة | L | شبكة أصغر وأكثف؛ لا شيء تحمي نفسك منه |
| طباعة عامة: مطويات، ملصقات، بوسترات | M | توازن بين الكثافة والمقاومة |
| شعار موضوع داخل الرمز | Q–H | أي ضرر مركزي يتطلب أقوى حماية |
| مواد خارجية أو متسخة أو منحنية أو مطوية | H | أقصى هامش إعادة بناء للتلف غير المتوقع |
استكشاف الأخطاء: لماذا توقف رمز عن المسح
الرمز يطبع، لكن لا شيء يمسح حتى عندما يكون نظيفاً. هذا ليس تصحيح أخطاء في الغالب. تحقق من الحجم المطبوع مقابل مسافة المسح (استخدم قاعدة 10:1 من دليل الحجم)، وتأكد من منطقة صمت لا تقل عن 4 وحدات على كل جانب، وتحقق من التباين — أحبار رمادية على أبيض وطلاء لامع من القتلة الشائعين قبل أي تلف.
عمل في Photoshop أو Inkscape لكن ليس على الورق. اختبرت صورة معروضة على شاشة ثم طبعت أصغر أو بدقة أدنى من المقصود. أعِد التصدير بالحجم النهائي الحقيقي وبحد أدنى 300 DPI (أو استخدم SVG) وأعد اختبار النسخة المطبوعة من المسافة الحقيقية.
نمط محدِّد تضرر ولا شيء في الدنيا يصلحه. ملصق أو لافتة أو طية تحجب أي مربع من المربعات الزاوية الثلاثة يدمّر الكشف. لا يوجد مستوى تصحيح أخطاء يعوض عن ذلك؛ حرّك العائق أو أعد الطباعة. هذا يطابق نتيجة العلامات العشوائية تماماً.
الزاوية السفلية اليمنى غُطّيت ومازال H يفشل. كما قيس أعلاه، يعيش نمط المحاذاة هناك على الشبكات الأكبر. إذا كان تصميمك أو تغليفك يتداخل مع تلك الزاوية، غيّر الموضع، أو صغّر المحتوى للنزول إلى شبكة أصغر، أو كليهما.
خط كي أو طية يعبر الرمز. الأشرطة الرفيعة عبر رمز تقتل عادة أنماط التوقيت في أحد الجانبين. إما أن تبعد الرمز عن خط الطية أو تقبل أن القطع المجعّد يحتاج طباعة جديدة لا مستوى أفضل.
الأسئلة الشائعة
هل يمكن لرمز QR أن ينجو من تلف 30% فعلاً؟ فقط بمعنى Reed-Solomon — 30% من كلمات شيفرته، مرتبة كمحو قابل للاسترداد. قياساتنا تبين أن التلف الموضعي الواقعي (شعار، خربشة، لطخة ركنية) ينجو نحو ثلث إلى نصف ذلك، وأن العلامات العشوائية تفشل مبكراً جداً.
أي مستوى تصحيح أخطاء أستخدم مع شعار؟ المستوى H. في اختبار الشعار المركزي كان H الوحيد الذي ما يزال يفك الشيفرة مع تغطية 15% من الرمز؛ Q استسلم عند 15%، وM عند 10%، وL عند 5%.
لماذا فشل رمزي من المستوى H بعد لطخة صغيرة؟ لأن اللطخة لمست ميزة بنيوية. يشرح شرح تصحيح الأخطاء لماذا تتصرف المحددات وخطوط التوقيت والشكل والمحاذاة بشكل مختلف عن وحدات البيانات — الضرر هناك غير قابل للاسترداد.
هل السفلية اليمنى أضعف نقطة فعلاً؟ للشبكات الأكبر، نعم. تحمل نمط المحاذاة الوحيد، واختبارنا عند 8% في الزاوية أسقط حتى H إلى 0%. أأمن زاوية هي التي لا يمسها تصميمك أبداً؛ والجواب العملي هو إبقاء منطقة الصمت كاملة في حدود 4 وحدات واختبار تخطيطك الفعلي.
هل تعطي كاميرات الهاتف نفس نتائج الفكّاك البرمجي؟ قريبة بما يكفي للنجاح/الفشل على التخطيط نفسه، لكن مسح الهاتف يضيف متغيرات المسافة والزاوية والإضاءة. استخدم الفك البرمجي للعتبة الدقيقة بايتاً ببايت، والهاتف للتأكيد الواقعي النهائي.
اجعل رمزك ينجو من الواقع
أرقام المواصفة سقف مفيد، ليست أرضية. جداولنا المقيسة هي الحقيقة المرجعية لهذا المحتوى تحديداً ولأشكال التلف هذه: ضع شعارك في المركز فقط بمستوى Q أو H، وعامل نمط المحاذاة السفلي الأيمن على أنه هشّ بمجرد أن تنمو شبكتك، ولا تثق أبداً بـ«30%» لتغطي خدشاً عشوائياً. ولّد رمز اختبار على هذا الموقع، وشغّله عبر الروتين أعلاه، وستعرف بالضبط كيف يتصرف تصميمك قبل أن يصل إلى الطابعة.
أنشئ رمز اختبار الآن — اضبط مستوى تصحيح الأخطاء على H، وضع شعارك، وامسح النتيجة من كل مسافة في حالات استعمالك.