QR-код с изображением

Раз вы здесь, вы, вероятно, хотите разместить логотип или другое изображение в центре QR-кода. Хотя QR-коды не были спроектированы для встраивания графики, их устойчивость к ошибкам позволяет заменить часть элементов пользовательской графикой, сохраняя читаемость.

Перед тем как продолжить, рекомендуем ознакомиться с уроком “Создание QR-кодов”, где объясняется ручная настройка размера, уровня коррекции ошибок и маски. Это понадобится далее.

Так как же добавить изображение в QR-код?

По сути, нужно очистить центральную часть QR-кода, освободив место для вашего логотипа. Вопрос лишь в том, сколько элементов можно удалить, чтобы штрих-код всё ещё сканировался?

Ответ частично рассмотрен в упомянутом выше уроке по QR-кодам, но в итоге всё сводится к уровню коррекции ошибок. Чем выше уровень, тем больше элементов штрих-кода может быть “повреждено” вашим изображением.

Допустим, QR-код создан с 30% избыточности. Значит ли это, что можно закрыть треть символа логотипом? Нет. QR-код содержит маркеры, которые лучше не трогать: три больших квадрата с точками, а также четвёртый квадрат в правом нижнем углу и элементы вокруг них. Остальные точки — закодированные данные, и здесь можно вносить изменения.

Означает ли 30% избыточности, что можно изменить треть элементов между квадратами? Не совсем. На практике можно изменить лишь около половины “избыточных” элементов.

Звучит сложно, но, к счастью, Barcode делает расчёты за вас и автоматически показывает максимальную область для изображения при каждой конфигурации QR-кода.

Давайте попробуем!

Начнём с простого автоматически настроенного QR-кода и попробуем освободить место в центре. Установите всё в auto и включите опцию Empty space in the middle:

Попытка добавить изображение в QR-код

Если начать с нового QR-кода, при включении этой опции вы, скорее всего, не увидите изменений — как на скриншоте выше.

Причина в том, что Barcode не подстраивает QR-код автоматически для размещения изображения. Вместо этого он пытается вырезать отверстие в центре с учётом уровня коррекции ошибок и размера, сохраняя читаемость. Поскольку наш QR-код настроен автоматически, избыточность слишком мала, чтобы что-либо вырезать.

Давайте разберёмся, и первое, что нам нужно…

Переключение в ручной режим

Нужно отключить автоматическую настройку. Поскольку мы собираемся вырезать элементы и заменять их графикой, нам нужна дополнительная избыточность и больше модулей (точек). В автоматическом режиме этого не получить, поэтому переключимся в ручной:

Переключение в ручной режим

Здесь я отключил автоматическую настройку, увеличил размер до 33x33 модулей и повысил уровень коррекции ошибок до 55%. Здесь нет правильных значений: чем выше разрешение и уровень коррекции, тем больше область для графики. С другой стороны, чем выше разрешение, тем мельче элементы и тем сложнее их сканировать. Нужно найти баланс.

Попробуйте этот подход:

  1. Отключите автоматическую настройку;
  2. Установите высокий уровень коррекции ошибок (55% и выше);
  3. Задайте минимальный размер: 21x21 или около того;
  4. На этом этапе экран, скорее всего, станет пустым, так как содержимое не помещается в малое число элементов;
  5. Начинайте увеличивать размер, пока штрих-код не появится. Можно пропускать некоторые разрешения для ускорения;
  6. Когда штрих-код снова появится, увеличьте разрешение ещё на 1-2 шага на всякий случай.

Как видно на изображении выше, в центре QR-кода появилось небольшое пустое пространство — мы приближаемся к цели.

Настройка отверстия

Есть две опции: Center empty space и Reduce it by. Первую пока оставим и начнём со второй.

Как объяснялось выше, можно заменить лишь ограниченное число элементов, и предел задаётся уровнем коррекции ошибок. Более того, заменить их все на практике не получается. К сожалению, невозможно проверить при генерации, насколько хорошо код сканируется после печати, поэтому, хотя программа вычисляет максимальный размер графики, она позволяет уменьшить его, сохраняя больше элементов. По умолчанию вычисленное значение уменьшается на 4 элемента. Можно увеличить это число, сделав область графики меньше, или уменьшить, сделав её больше.

Здесь я установил Reduce в ноль:

Резервирование максимального пространства для изображения в QR-коде

Как видно, пустая область стала гораздо больше. Проблема в том, что штрих-код больше не сканируется. Даже со всей избыточностью QR-кода и дополнительными мерами предосторожности мы не можем вырезать столько элементов.

Именно для этого нужен параметр Reduce it by: чтобы подстроить отверстие так, чтобы графика помещалась, а код сканировался.

План настройки:

  1. Начните со штрих-кода, полученного по плану выше, и проверьте, помещается ли графика;
  2. Если нет, попробуйте уменьшить Reduce it by, чтобы увидеть, поможет ли это;
  3. Если не работает, вернитесь к плану выше и увеличьте разрешение на несколько шагов, затем сбросьте Reduce by на 4 и проверьте, достаточно ли места;
  4. Повторяйте, пока графика не поместится в пустую область;
  5. Когда поместится, увеличьте разрешение ещё на шаг на всякий случай;
  6. Попробуйте отсканировать код телефоном прямо с экрана. Убедитесь, что он легко сканируется даже с расстояния. Сравните с обычным QR-кодом без отверстий. Цель — добиться такого же лёгкого сканирования;
  7. Если есть проблемы, попробуйте уменьшить отверстие, увеличив Reduce by, или добавьте больше деталей, увеличив размеры. Также может помочь более высокий уровень коррекции ошибок.

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

Вот QR-код с относительно большой областью для графики, который при этом неплохо читается. Обратите внимание на параметры справа, обеспечивающие это:

QR-код с изображением, настроенный для лёгкого сканирования

Очень полезно протестировать код дальше: распечатать и проверить в реальных условиях, чтобы убедиться, что даже с графикой в центре QR-код сканируется в предназначенной для него среде.

Центрирование пустого пространства

Этот параметр — нечто среднее между техническими спецификациями и принципами дизайна и требует дополнительных деталей реализации QR-кода. Нужно знать две вещи:

  1. QR-коды всегда имеют нечётную ширину и высоту (в модулях);
  2. Данные в QR-коде кодируются блоками, каждый блок — два элемента в ширину.

Хотя кажется, что эти правила противоречат друг другу, структура QR-кода содержит и другие элементы, так что 2-элементные блоки в сумме дают нечётное число модулей. Впрочем, здесь это не важно.

Важно то, что удаление одного элемента QR-кода фактически “повреждает” весь блок, содержащий его. А раз блок уже повреждён, можно легко разместить рядом ещё один пиксель, и если он попадёт в тот же блок, дополнительного ущерба по сравнению с первым пикселем не будет.

Это значит, что пустую область лучше делать чётной ширины в модулях и выравнивать по блоку, чтобы минимизировать число повреждённых блоков.

Однако, поскольку сам QR-код имеет нечётное число элементов, чётная область не может быть размещена симметрично в центре. Если это не важно — можно добавить избыточности, затронув меньше блоков. Но если нужно идеальное центрирование — включите опцию Center Empty Space, которая добавляет ещё один пиксель слева и сверху, делая область идеально центрированной ценой повреждения дополнительных блоков.

В целом, можно держать её включённой большую часть времени и отключать только при очень жёстких ограничениях по площади и уровню детализации.

В заключение

Весь процесс довольно сложен, и вы можете спросить: зачем, если другие генераторы предлагают добавление графики в один клик?

Причина в том, что здесь у вас есть полный контроль и возможность настроить любой параметр, если что-то пойдёт не так. Это невозможно при подходе “в один клик”, где у вас нет контроля, если, скажем, код не сканируется после печати.

В целом, стоит немного углубиться в тему, чтобы получить лучший результат.

Если хотите узнать больше об изменении QR-кодов с сохранением читаемости: Drawing on the QR code.

Больше Информации о Barcode

Инсталляция

Основы

Штрих-коды EAN

Штрих-коды UPC

Штрих-коды NDC

QR Коды

Другие Штрих-коды

Экспорт

Автоматизация

Другое