QRkoder

Контраст QR-кода

Контраст QR — разница между светлыми и тёмными модулями. ISO/IEC 15415 требует минимум 40%. От контраста зависит, считается ли код смартфоном со 100% попыток.

Что такое контраст QR-кода

Контраст QR-кода — это разница в яркости между тёмными и светлыми модулями матрицы. Сканер, будь то смартфон или промышленный ридер, бинаризует изображение: каждый пиксель относится к «тёмному» или «светлому» классу. Чем резче граница между ними, тем надёжнее декодирование. Слабый контраст даёт смазанную границу, и алгоритм начинает путаться, к какому классу отнести пограничный модуль.

Контраст измеряется по формуле светлоты: C = (RL − RD) / RL × 100%, где RL — отражательная способность светлых модулей, RD — тёмных. Международный стандарт ISO/IEC 15415, охватывающий верификацию всех 2D-символик, устанавливает нижнюю границу: минимум 40%. При значении ниже 40% коду выставляется оценка «F» по шкале 0–4 при верификации, что означает несоответствие стандарту. Подробнее о структуре QR-кода — в соответствующей статье глоссария.

Минимальный контраст 40% по ISO

Норматив 40% — не произвольная цифра. Он учитывает реальные условия сканирования: старение печатных материалов, перепады освещения, чтение под углом и характеристики бюджетных камер. Код с контрастом строго 40% будет нестабильно читаться в плохих условиях — он соответствует стандарту формально, но на практике полиграфисты и технологи рекомендуют держать контраст не ниже 60–70%.

Верификатор ISO/IEC 15415 оценивает контраст отдельно от других параметров (искажение модулей, шум, деформации), поэтому код может иметь отличное позиционирование и при этом «провалиться» по контрасту. Это типично для кодов, напечатанных металлизированными красками или тиснением без цвета: блеск поверхности снижает измеренный контраст до 30–35%.

Цветные QR и инверсия

Цвет допустим, если разница в яркости между тёмными и светлыми модулями после перевода в серую шкалу остаётся выше 40%. Практические примеры:

  • Тёмно-красный на белом — да. Красный канал подавляет тёмный модуль, но разница яркостей достаточна.
  • Тёмно-синий на белом — да. Яркость синего невысока, контраст держится выше нормы.
  • Жёлтый на белом — нет. Жёлтый и белый близки по яркости, контраст падает ниже 20–25%. Такой QR провалит верификацию и будет нестабильно читаться.
  • Светло-серый на белом — нет. Та же проблема с недостаточной разницей яркостей.

Инверсия (светлые модули на тёмном фоне, «негатив») теоретически допустима — ISO/IEC 18004 это поддерживает. На практике не все сканеры корректно обрабатывают инвертированный QR. Ранние прошивки iOS-камер и многие POS-терминалы инверсию не поддерживали. Для широкой аудитории лучше придерживаться классики: тёмный код на светлом фоне. Если брендированный QR нужен с нестандартными цветами, проверяйте тихую зону и контраст одновременно — оба параметра критичны для стабильного считывания.

Типичные ошибки контраста

  • QR на цветной упаковке без белой подложки. Фон упаковки поглощается в серую шкалу и поднимает яркость «светлой» части кода, сокращая контраст. Решение: всегда добавлять белый прямоугольник под QR с запасом на тихую зону.
  • Металлизированная или глянцевая печать. Блики снижают измеренный контраст даже у классического чёрного на белом. На матовой бумаге тот же код имеет контраст 80%+; на глянце с паразитным отражением — может проваливаться до 50%.
  • Светлые тёмные модули в брендированном QR. Дизайнеры нередко берут корпоративный тёмно-серый вместо чёрного. При конвертации в серую шкалу разница с белым фоном падает. Используйте тёмный цвет с яркостью не выше 30–35 по шкале 0–255.
  • Слабый контраст при минимальном размере. Маленький QR прощает меньше: пиксели размыты интерполяцией камеры, и пограничный контраст добивает ситуацию. При размере кода менее 20 мм держите контраст 70%+.

Простой тест без верификатора: откройте изображение QR в любом графическом редакторе, переведите в режим «Оттенки серого» и проверьте визуально. Если тёмные модули выглядят серыми, а не чёрными, контраст недостаточен — код нужно переделать.

Частые вопросы

Какой контраст QR-кода считается нормой?

По ISO/IEC 15415 минимум — 40%. На практике для стабильного считывания смартфонами рекомендуется не ниже 60%. Для промышленных сканеров, POS-терминалов и маркировки на упаковке, которую читают при разном освещении, ориентируйтесь на 70%+. Код с контрастом строго у нижней границы в 40% будет давать сбои на дешёвых камерах и при плохом освещении.

Можно ли делать QR-код цветным?

Да, при соблюдении одного условия: разница в яркости между тёмными и светлыми модулями при переводе в серую шкалу должна превышать 40% (норматив ISO). Красный, синий, тёмно-зелёный на белом фоне — обычно работают. Жёлтый, оранжевый, светло-серый на белом — как правило, нет. Проверяйте каждый цветной вариант переводом в grayscale и замером яркостей пипеткой в любом редакторе.

Работает ли инвертированный QR (светлый на тёмном)?

Технически ISO/IEC 18004 поддерживает инверсию. Однако значительная часть сканеров — особенно встроенные в кассовые терминалы, старые прошивки камер и узкоспециализированные ридеры — не умеют читать инвертированный QR. Для рекламных материалов и упаковки с широкой аудиторией лучше придерживаться классики: тёмный код на светлом фоне. Инверсию допустимо применять только там, где вы заранее знаете, каким сканером будет считываться код.

Почему QR плохо читается на глянцевой упаковке?

На глянце паразитные блики от освещения поднимают яркость тёмных модулей при оцифровке камерой — сканер видит их как более светлые, и контраст падает. Решения: использовать матовый лак поверх QR, добавить белую матовую подложку под код, избегать размещения QR на поверхностях с прямым отражением. При разработке упаковки лучше предусмотреть отдельную зону с матовым покрытием специально для QR.

Как проверить контраст QR без специального оборудования?

Переведите изображение QR в режим «Оттенки серого» в любом редакторе (Photoshop, GIMP, даже Paint). Воспользуйтесь пипеткой: измерьте яркость тёмного модуля (L1) и светлого (L2). Контраст в процентах: (L2 − L1) / L2 × 100. Если L1 = 20 и L2 = 240 по шкале 0–255, контраст ≈ 92% — отлично. Если L1 = 120 и L2 = 200, контраст ≈ 40% — граничное значение, стоит улучшить. Этот метод не заменяет ISO-верификатор, но выявляет явные проблемы.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно