Перейти к содержимому
pdftools.kz
Популярное

Почему штрихкод перестал считываться

Сканер смотрит не на картинку, а на ширины штрихов и промежутков: значение он восстанавливает по их соотношению, поэтому ему важно точное положение границы чёрного и белого. JPEG в первую очередь выбрасывает высокие частоты, а резкая граница из них и состоит — вдоль каждого штриха появляется светлый ореол, и край уезжает на доли пикселя. Плюс арифметика: полоса 0,33 мм при 95 DPI занимает 1,2 пикселя.

Локально в браузередо 1 ГБбез регистрации

Коротко о цифрах

Что измеряет сканер
ширины штрихов и промежутков, то есть положение границ
Полоса 0,33 мм при 95 DPI
1,2 пикселя — край попадает внутрь пикселя
Она же при 254 DPI
3,3 пикселя
Модуль QR 0,5 мм при 186 DPI
3,7 пикселя
Что выбрасывает JPEG
высокие частоты, а резкая граница состоит именно из них

Что именно ломается

Декодер линейного кода не «узнаёт картинку», а измеряет последовательность ширин: узкий штрих, широкий промежуток, снова узкий. Пока соотношения выдержаны, код читается даже перекошенным и грязным. Как только границы смещаются неравномерно, измерение перестаёт сходиться, и устройство просто молчит — без объяснения причины.

Растеризация вносит первую ошибку. При 95 DPI полоса в треть миллиметра занимает чуть больше пикселя, и её край почти всегда приходится на середину пикселя, который закрашивается серым. При 254 DPI на ту же полосу приходится 3,3 пикселя, и край ложится точнее. Вторую ошибку добавляет JPEG, размывая то, что осталось.

Арифметика ширины штриха

  • Полоса 0,33 мм при 95 DPI — 1,2 пикселя.
  • Она же при 186 DPI — 2,4 пикселя.
  • Она же при 254 DPI — 3,3 пикселя.
  • Модуль QR-кода 0,5 мм при 95 DPI — 1,9 пикселя, при 186 DPI — 3,7 пикселя.

Как вернуть читаемость

  1. Возьмите исходный файл: из размытого кода резкий не восстановить, повторное сжатие только добавит второй слой ореолов.
  2. Поставьте качество 80–100 % — это 254–300 DPI, при которых край штриха ложится в отдельный пиксель.
  3. Если вес всё равно не сходится, не растеризуйте документ вовсе: оптимизация уменьшает файл, не трогая изображение кода.
  4. Страницу с кодом можно выгрузить в PNG — формат без потерь, ореолов не появляется вообще.
  5. Проверьте результат до отправки: наведите камеру телефона на код в масштабе 100 % или распечатайте страницу и просканируйте.

Как убедиться, что дело в сжатии

  • Исходный файл считывается, а результат нет — значит, причина появилась по дороге, а не в самом коде.
  • В масштабе 100 % вдоль штрихов виден светлый ореол, которого нет в исходнике.
  • Края штрихов стали серыми и мягкими, хотя середина осталась чёрной.
  • QR-код теряет углы-искатели: три квадрата по краям расплываются раньше остального рисунка.

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

На экране код выглядит нормально, а сканер его не берёт. Почему?

Глаз достраивает размытый край и не замечает подмены, а декодер измеряет ширины в долях миллиметра. Сдвиг границы на треть штриха для человека невидим, а для измерения фатален.

Поможет ли увеличить контраст изображения?

Нет. Ореол вокруг штриха симметричен, и усиление контраста вытянет его вместе с самим штрихом, сделав границу ещё более рваной. Данных о точном положении края в файле уже не осталось.

Какое качество ставить, если на листе есть штрихкод?

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

Можно ли проверить код, не печатая документ?

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

Рядом

Частые задачи с этим инструментом