Почему контраст — это не опция
В интернете полно QR-кодов с фирменными цветами — но цветовые решения, которые выглядят чёткими для человеческого глаза, нередко не проходят порог яркости, на который ориентируются декодеры. Декодер QR-кода работает путём распознавания тёмных модулей на светлом фоне. Декодер не видит цвет — он видит относительную яркость. Модуль либо тёмный (ниже порога яркости), либо светлый (выше него). Если разница яркости между цветом модуля и цветом фона слишком мала, декодер не может надёжно их различить — и код не сканируется.
Вот почему тёмно-синий QR-код на сером фоне может выглядеть визуально чётким для человека — разница в цвете очевидна — но всё равно не сканироваться: разница в яркости (контраст по яркости) недостаточна.
Каков реальный порог контраста?
Стандарт ISO/IEC 18004 (регулирующий QR-коды) требует минимальной разницы отражательной способности между тёмными и светлыми элементами. На практике это соответствует требованиям к соотношению контраста, аналогичным стандартам доступности.
Для надёжного сканирования рекомендуется минимальное соотношение контраста 3:1 между цветом модуля и цветом фона. Чёрный (#000000) на белом (#FFFFFF) даёт соотношение 21:1 — максимально возможное.
Проверщик контраста QR на этом сайте вычисляет соотношение контраста для любой комбинации HEX-цветов переднего плана и фона и сообщает, соответствует ли оно порогу.
Проблема инверсии
Белый QR-код на тёмном фоне иногда называют «инвертированным». Некоторые декодеры обрабатывают его нормально. Другие — нет: особенно старые приложения для сканирования и многие кассовые ридеры штрихкодов.
Если ваш дизайн требует тёмного фона, самое безопасное решение — разместить QR-код на белом прямоугольнике, вписанном в тёмный фон, а не инвертировать сами цвета модулей. Это сохраняет стандартную ориентацию «тёмное на светлом», оставаясь при этом в рамках тёмного макета.
Типичные ошибки контраста в производстве
QR-коды в фирменных цветах. Компания использует свой фирменный синий (#003087) в качестве цвета модуля. На светло-сером фоне код выглядит брендово. Но если этот серый — #d0d0d0, соотношение контраста составляет около 4,5:1 — граничное значение. На среднем фоне (#b0b0b0) оно может упасть ниже 3:1 и начать давать сбои на некоторых сканерах.
Градиентные фоны. QR-код на градиентном фоне, переходящем от светлого к тёмному, будет иметь достаточный контраст на одной половине и провальный на другой. Худший по производительности участок определяет, будет ли код сканироваться в целом.
Цветная бумага или картон. Код, напечатанный чёрными чернилами на кремовой, бежевой или цветной бумаге, будет сканироваться нормально. Код, напечатанный цветными чернилами на цветной бумаге, — нет. Важно то, как принтер воспроизводит ваш цвет чернил на конкретном материале: всегда тестируйте физический образец.
Смещение цветов при печати. Цвета, выглядящие высококонтрастными на экране, иногда значительно смещаются при печати. Глубокий бирюзовый цвет модуля, кажущийся тёмным на откалиброванном мониторе, может распечататься значительно светлее на меловой бумаге без покрытия. Перед производственным тиражом запросите цветопробу.
Прозрачность и наложения. QR-коды, размещённые поверх фотографий или текстур, наследуют проблемы контраста от того, что находится под ними. Код на фотографии с переменными светлыми и тёмными зонами будет иметь непостоянный контраст по всей площади кода.
QR-арт. Дизайны, встраивающие изображения, градиенты или иллюстрации в область модуля, нередко жертвуют контрастом яркости ради визуального эффекта. Если встроенный арт осветляет тёмные модули или затемняет фон, код будет давать сбои именно в этих местах.
Безопасный подход
Если надёжность важнее эстетики, используйте чёрные модули на белом фоне. Это не дизайнерский провал — это стандарт по веской причине.
Творческие QR-коды с нестандартными цветами, логотипами или художественным оформлением достижимы, но каждое решение, отступающее от чёрного на белом, сокращает запас контраста. Если ваш дизайн требует цвета, следуйте этим правилам:
- Тёмные модули должны быть темнее светлого фона — никогда наоборот.
- Вычислите соотношение контраста с помощью проверщика контраста QR перед утверждением дизайна.
- Протестируйте реальный напечатанный результат — не только экранный макет.
- Держите цвет модуля в тёмном диапазоне (яркость ниже 35%), а цвет фона — в светлом диапазоне (яркость выше 65%) для комфортного запаса.
Проверка уже напечатанного QR-кода
Если у вас есть напечатанный QR-код, который не сканируется, и подозревается проблема контраста, сфотографируйте его при равномерном освещении. Зафиксируйте цвет фона и модулей, затем прогоните их через проверщик контраста. Если соотношение ниже 3:1, контраст, скорее всего, и есть проблема.
С помощью генератора URL QR-кода пересоздайте код с чёрными модулями на белом фоне, перепечатайте и убедитесь в надёжном сканировании, прежде чем исследовать другие причины.