Что такое code 128

Code 128

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Стандарт штрихкода Code 128 существенно отличается от таких широко распространённых стандартов штрихового кода, как например, EAN. Отличия заключаются, прежде всего, в возможности кодирования не только цифр, но и букв латинского алфавита, а также специальных символов. Кроме того, цифровой код в формате Code 128 становится очень компактным, что достигается за счёт «двойной упаковки» данных, когда два числа записываются в один модуль штрихкода. Буквенные символы кодируются обычным — «одиночным» способом, что делает буквенный код в формате Code 128 вдвое длиннее цифрового.

Содержание

Описание

Штриховой код Code 128 включает в себя 107 символов. Из которых 103 символа данных, 3 стартовых, и 1 остановочный (стоп) символ. Для кодирования всех 128-ми символов ASCII предусмотрено три комплекта символов штрихового кода Code 128 — A, B и C, которые могут использоваться внутри одного штрихкода.

Технические требования к символике штрихового кода Code 128, показатели символики, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения и строки-префиксы и идентификатора символики в России регламентируются ГОСТ 30743-2001 (ИСО/МЭК 15417—2000) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128 (Код 128)».

Структура Code 128

Структура штрихкода Code 128 достаточно проста. Штрихкод состоит из шести зон:

Символы штрихового кода Code 128 состоят из трёх штрихов и трёх промежутков. Штрихи и промежутки имеют модульное построение. Ширина каждого модуля составляет от 1 до 4 модулей (1 модуль = 0,33 мм). Ширина знака равна 11 модулям. Остановочный (стоп) знак состоит из тринадцати модулей и имеет четыре штриха и три промежутка.

Контрольный знак Code 128

В спецификации Code 128 использование контрольного знака является обязательным. Согласно таблице символов штрихкода Code 128, каждому знаку присваивается соответствующие значение. Затем, для каждого знака, кроме знака «Stop» и контрольного знака, назначается весовой коэффициент, 1, 2, 3,…, n. При этом, знакам «Start» и следующему за ним первому знаку, присваивается весовой коэффициент равный 1. Контрольный знак вычисляется как сумма произведений весовых коэффициентов на соответствующие значения по модулю 103. Располагается контрольный знак между последним знаком данных и знаком «Stop». [1]

Примечания

См. также

Полезное

Смотреть что такое «Code 128» в других словарях:

Code 128 — Wikipedia encoded in Code 128 B Code 128 is a very high density barcode symbology. It is used for alphanumeric or numeric only barcodes. It can encode all 128 characters of ASCII and, by use of an extension character (FNC4), the Latin 1… … Wikipedia

Code 128 — Wikipedia codificado en Code 128 B. Code 128 es un código de barras de alta densidad, usado ampliamente para la logística y paquetería. Puede codificar caracteres alfanuméricos o solo numéricos. Con este código es posible representar todos los… … Wikipedia Español

Code 128 — Le Code 128 est un format de code barres permettant de coder 103 caractères de la table ASCII. Il en existe 3 tables de codage : A, B et C. C est un format courant dans le milieu industriel. Il existe une normalisation qui dérive du Code 128 … Wikipédia en Français

Code 128 — Beispiel für Code128 Der Code128 (1981) ist eine alphanumerische Kodierung mit hoher Informationsdichte, die im Barcode Bereich eingesetzt wird. Der Prinzipaufbau eines Code128 Lesesymbols besteht aus einem Startsymbol, der Nutzinformation, dem… … Deutsch Wikipedia

128 (number) — 128 (one hundred [and] twenty eight) is the natural number following 127 and preceding 129. ← 127 129 → 128 ← … Wikipedia

Code-barre EAN — Code barres EAN Le code EAN (European Article Numbering) est un code barres utilisé par le commerce et l industrie conformément aux spécifications d’EAN International, organisme aujourd hui remplacé par GS1[1]. Il est connu en France sous le nom… … Wikipédia en Français

Code-barre — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Code barre — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Code barres — code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée et des… … Wikipédia en Français

Code à barres — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Источник

Использование штрих-кода CODE-128 для производства пластиковых карт

В отличие от штрих-кодов EAN-13 и EAN-8, штрих-код CODE-128 не имеет фиксированного количества символов, и в нем не используется контрольный символ.

Принципиальное отличие данного формата — возможность кодирования не только цифр, но и строчных или заглавных латинских букв, а также большого набора спецсимволов

Технические требования к символике штрихового кода Code 128, показатели символики, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения и строки-префиксы и идентификатора символики в России регламентируются ГОСТ 30743-2001 (ИСО/МЭК 15417—2000) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128 (Код 128)».

Какие символы кодируются в штрих-код CODE-128?

В штрих-код CODE-128 можно закодировать до 70 символов:

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

Внешний вид штрих-кода CODE-128

На рисунке, расположенном ниже, размещен пример штрих-кода с номером 00001 с различными вариантам отображения подписанного номера.

вы можете проверить
штрих-коды сосканировав их с экрана своим телефоном

CODE-128 С ПОДПИСАННЫМ НОМЕРОМ

Под штрих-кодом полностью отображен закодированный номер.

Введите символы и цифры:

CODE-128 С ЧАСТИЧНО ПОДПИСАННЫМ НОМЕРОМ

Под штрих-кодом полностью отображена часть закодированного номера.

Введите символы и цифры:

Отображать цифр справа:

CODE-128 БЕЗ ПОДПИСАННОГО НОМЕРА

Под штрих-кодом полностью отображен закодированный номер.

Введите символы и цифры:

Структура Code 128

Структура штрих-кода Code128 достаточно проста. Он состоит из шести зон:

Символы Code128 состоят из трех штрихов и трех промежутков. Штрихи и промежутки имеют модульное построение. Ширина каждого модуля составляет от 1 до 4 модулей (1 модуль = 0,33 мм). Ширина знака равна 11 модулям. Остановочный (стоп) знак состоит из тринадцати модулей и имеет четыре штриха и три промежутка.

Контрольный знак Code 128

В спецификации Code128 использование контрольного знака является обязательным.

Согласно таблице символов Code128, каждому знаку присваивается соответствующее значение. Затем, для каждого знака, кроме знака «Stop» и контрольного знака, назначается весовой коэффициент, 1, 2, 3,…,n. При этом знакам «Start» и следующему за ним первому знаку, присваивается весовой коэффициент равный 1.

Контрольный знак вычисляется как сумма произведений весовых коэффициентов на соответствующие значения по модулю 103. Располагается контрольный знак между последним знаком данных и знаком «Stop».

Источник

Штрихкодирование

Данный раздел содержит общие сведения, касающиеся штрихкодирования, нюансы, связанные с формированием изображения штрихкодов, а также методику штрихкодирования товаров на предприятии.

Формат EAN13


Формат EAN13 является расширением формата UPC-A. Данный формат позволяет кодировать 12 символов (цифры от 0 до 9), к которым добавляется справа контрольная (тринадцатая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-A соответствует значению штрихкода EAN-13, у которого первый символ 0.

Кодируемая при помощи этого алгоритма последовательность символов, обычно, представляет уникальный международный номер товара EAN13/UCC, который является уникальным в международном масштабе.

Формат EAN8


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат EAN8 является расширением формата UPC-E и представляет сокращённую форму EAN13. Данный формат позволяет кодировать 7 символов (цифры от 0 до 9), к которым добавляется справа контрольная (восьмая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-E соответствует значению штрихкода EAN-8, у которого первый символ 0.

Формат Code 39


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Существует также расширение Code 39, которое, по сути, представляет набор правил, по которым символы, не входящие в список допустимых для данного формата, кодируются при помощи последовательностей допустимых символов. Стандартное расширение дополняет список допустимых символов строчными буквами латиницы.

Формат Code 93


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Code 93 (также называется «USS-93») позволяет кодировать такую же последовательность символов, как и расширение Code 39, но при этом изображение штрихкода получается заметно меньше. К недостаткам формата можно отнести отсутствие возможности упаковки кодируемой информации.

Формат Industrial 2 of 5


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Interleaved 2 of 5


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Codabar


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Codabar (также называется «Ames code», «USD-4», «NW-7», «2 of 7 code») позволяет кодировать цепочку символов (цифры, некоторые знаки пунктуации) произвольной длины + один из 4 возможных (A, B, C, D) префиксов и один из 4 возможных суффиксов (также A, B, C и D).

К недостаткам данного алгоритма следует отнести отсутствие возможности упаковки кодируемой цепочки символов.

Формат Code 128


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Code 128 является форматом высокой плотности, позволяет кодировать цепочку символов (первые 128 символов ASCII-таблицы) произвольной длины. Формат поддерживает упаковку данных.

Формат EAN128


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат RSS 14


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат RSS 14 является, как и Code 128, форматом высокой плотности и позволяет кодировать цепочку символов (первые 128 символов таблицы ASCII) произвольной длины. При кодировании осуществляется упаковка кодируемой последовательности символов. К недостаткам можно отнести то, что штрихкоды данного типа поддерживаются ограниченным набором сканеров.

Формат Code 16k


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат Code 16k является двумерным, штрихкод представляет последовательность одномерных штрихкодов (формат которых подобен Code 128), расположенных друг над другом, что позволяет увеличить плотность кодирования. К недостаткам алгоритма можно отнести то, то данный формат поддерживается ограниченным набором сканеров штрихкода.

Формат PDF-417


Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Формат PDF-417 является одним из самых распространённых двумерных форматов штрихкодирования. Данный формат позволяет кодировать последовательность символов кодовой страницы CP437, поддерживает ряд методов упаковки данных, а также параметризуемый алгоритм восстановления информации в случае повреждения изображения штрихкода.

Формирование изображения штрихкода

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

Нормально считываются сканером следующие сочетания цветов:

Считываются при определённых условиях:

Не считываются при определённых условиях:

Также следует обратить внимание, что изображение штрихкода, в общем случае, нельзя масштабировать, т.к. при этом могут нарушиться соотношения ширины штрихов и пробелов штрихкода. Масштабирование, обычно, допускается в сторону увеличения изображения в целое число раз (этим, в частности, объясняется «скачкообразное» изменение размеров штрихкода при использовании элемента управления «1С:Печать штрихкодов»).

Методика штрихкодирования

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

Большинство весов, осуществляющих этикетирование весового товара при помощи EAN13, формируют штрихкод следующего формата:

Дополнительно
Более подробно с описанием штрихкодов, их структурой и областью применения можно ознакомиться в подразделе «Штрихкоды» данного раздела.

Источник

Как устроен штрихкод?

Со штрихкодами современный человек сталкивается каждый день, даже не задумываясь об этом. Когда мы покупаем в супермаркете продукты, их коды считываются именно с помощью штрихкода. Также посылки, товары на складах, и прочее и прочее. Однако, мало кто знает, как же реально это работает.

Как устроен баркод, и что закодировано на этой картинке?

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Попробуем разобраться, заодно напишем декодер таких кодов.

Введение

Использование штрихкодов имеет давнюю историю. Первые попытки автоматизации начинались еще в 50х, патент на устройство считывания кодов был получен в 1952г. Инженер, занимавшийся сортировкой вагонов на железной дороге, захотел упростить процесс. Идея была очевидной — кодировать номер с помощью полос и считывать их с помощью фотоэлементов. В 1962г коды стали официально использоваться для идентификации вагонов на американской железной дороге (система KarTrak), в 1968 прожектор заменили лазерным лучом, что позволило повысить точность и уменьшить размер считывателя. В 1973г появился формат «универсального кода продукта» (Universal Product Code), и в 1974 с использованием сканера кодов был продан первый продукт (жевательная резинка Wrigley’s — это же США;) в супермаркете. В 1984 треть магазинов использовали штриходы, в России же они начали использоваться примерно с 90х годов.

Разных кодов под разные задачи сейчас используется довольно много, к примеру, последовательность «12345678» может быть представлена такими способами (и это еще не все):

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Приступим к побитовому разбору. Далее, все ниженаписанное будет относиться к виду «Code-128» — просто потому, что его формат довольно простой и понятный. Желающие поэкспериментировать с другими видами, могут открыть онлайн-генератор и посмотреть самостоятельно.

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

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

1 — Пустое место, нужное для четкого определения начала кода
2 — Стартовый символ. Для Code-128 возможны 3 варианта (называемых А, В и С): 11010000100, 11010010000 или 11010011100, им соответствуют разные кодовые таблицы (подробнее в Википедии).
3 — Собственно код, содержащий нужные нам данные
4 — Контрольная сумма
5 — Стоп символ. Для Code-128 это 1100011101011.
6(1) — Пустое место.

Теперь о том, как кодируются биты. Тут все очень просто — если взять ширину самой тонкой линии за «1», то линия двойной ширины даст код «11», тройная «111», и так далее. Пустое место будет «0» или «00» или «000» по тому же самому принципу. Желающие могут сравнить стартовый код на картинке, чтобы убедиться что правило выполняется.

Теперь можно начинать программировать.

Получаем битовую последовательность

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

Для начала загрузим изображение, растянем его по ширине, возьмем из середины изображения горизонтальную линию, преобразуем ее в ч/б и загрузим в виде массива.

На штрихкоде черному соответствует «1», а в RGB наоборот, 0, так что массив нужно инвертировать. Заодно вычислим среднее значение.

Запускаем программу, чтобы убедиться, что баркод загружен корректно:

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128

Теперь нужно определить ширину одного «бита». Для этого мы выделим начало стартовой последовательности «1101», записывая моменты перехода графика через среднюю линию.

Мы записываем только переходы через середину, так что код «1101» будет записан как «101», но нам этого достаточно чтобы узнать его ширину в пикселах.

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

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

Если все было сделано правильно, то мы получаем на выходе примерно такую последовательность:

11010010000110001010001000110100010001101110100011011101000111011011
01100110011000101000101000110001000101100011000101110110011011001111
00010101100011101011

Декодирование

Здесь никаких сложностей в принципе, нет. Символы в Code-128 кодируются 11-битным кодом, который имеет 3 разновидности (А, В и С) и может хранить либо разные кодировки символов, либо цифры от 00 до 99.

В нашем случае, начало последовательности 11010010000, что соответствует «Code B». Было жутко влом вбивать вручную все коды из Википедии, поэтому таблица была просто скопирована из браузера и ее парсинг был тоже сделан на Python (hint: на продакшене так делать не надо).

Теперь осталось самое простое. Разбиваем нашу битовую последовательность на 11-символьные блоки:

Наконец, формируем строку и выводим ее на экран:

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

В коде также не реализована проверка CRC, желающие могут сделать это самостоятельно.

Разумеется, алгоритм неидеален, и был написан за полчаса. Для более профессиональных целей есть готовые библиотеки, например pyzbar. Код с использованием такой библиотеки займет всего 4 строчки:

(предварительно нужно установить библиотеку, введя команду «pip install pyzbar»)

Дополнение: о подсчете CRC написал в комментариях пользователь vinograd19:

Интересна история контрольной цифры. Она возникла эволюционно.
Контрольная цифра нужна для того, чтобы избежать неправильного декодирования. Если штрихкод был 1234, а его распознали как 7234, то нужна валидация, которая предупредит замену 1 на 7. Валидация может быть неточная, чтобы хотя бы в 90% невалидные номера определялись заранее.

1-й подход: Давайте просто возьмем сумму. Чтобы в остатке от деления на 10 был 0. Ну то есть первые 12 символов несут информационную нагрузку, а последняя цифры подбирается так, чтобы сумма цифр делилась на 10. Декодируем последовательность, если сумма не делится на десять — значит декодировали с багом и нужно сделать это еще раз. Например, код 1234 — валидный. 1+2+3+4 = 10. Код 1216 — тоже валидный, а вот 1218 — нет.

Это позволяет избежать проблем с автоматикой. Однако в момент создания штрихкодов был фоллбек в виде набивания номер на клавишах. И там есть плохой кейс: если поменять порядок следования двух цифр, то контрольная сумма не меняется, и это плохо. То есть если штрихкод 1234 был вбит как 2134, контрольная сумма сойдется, а вот номер мы вбили неправильный. Оказывается, неправильный порядок цифр — это распространенный кейс, если стучать по клавишам быстро.

2-й подход. Хорошо, давайте сумму сделаем чуть сложнее. Чтобы цифры на четных местах учитывались дважды. Тогда при изменении порядка, сумма точно не сойдется к нужной. Например код 2364 валидный (2 + 3+3 + 6 + 4+4 = 20), а код 3264 — невалидный (3+ 2+2 + 6 + 4+4 = 19). Но тут оказался еще один плохой пример вбития. Некоторые клавиатуры такие, что десять цифр располагаются в два ряда. первый ряд 12345 и под ним второй второй ряд 67890. Если вместо клавишы «1» нажать правее клавишу «2», то контрольная сумма предупредит неправильный ввод. А вот если вместо клавишу «1» нажать ниже клавишу «6» — то может не предупредить. Ведь 6=1+5, и в случае когда эта цифра стоит на четном месте при вычислении контрольной суммы, мы имеем 2*6 = 2*1 + 2*5. То есть контрольная сумму увеличилась ровно на 10, поэтому ее последняя цифра не изменилась. Например контрольные суммы кодв 2134 и 2634 одинаковые. Та же ошибка будет, если мы вместо 2 нажмем 7, вместо 3 нажмем 8 и тд.

3-й подход. Ок, давайте что ли возьмем опять сумму, только цифры, стоящие на четных местах будем учитывать… трижды. То есть код 1234565 — валидный, потому как 1 + 2*3 + 3 + 4*3 + 5 + 6*3 +5 = 50.

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

Заключение

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

Как подсказали в комментариях, наиболее популярным в торговле является код EAN-13, битовое кодирование там такое же, а структуру символов желающие могут посмотреть самостоятельно.

Если у читателей не пропал интерес, отдельно можно рассмотреть QR-коды.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что такое code 128. Смотреть фото Что такое code 128. Смотреть картинку Что такое code 128. Картинка про Что такое code 128. Фото Что такое code 128