алгоритм создания штрих кода ean 13

Основы штрихкодирования.

Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

Рис.1. Пример штрихового кода EAN

Кодовое обозначение может выражаться восемью (EAN8) или тринадцатью (EAN13) цифрами, причем во втором случае реально кодируется только двеннадцать цифр. Знаки штрихового Кода EAN состоят из двух штрихов и двух промежутков.

Штриховое изображение всех 12-ти (8-ми) цифр составляет в целом символ кода EAN.

Рис.2. Стуктура штрихового кода EAN-13

Таблица 1. Характеристика позиций полного и сокращенного кодов в системе EAN

Расчет контрольной цифры для кода EAN-13

Расчет контрольной цифры для кода EAN-8

Расчет абсолютно идентичен рассмотренному выше.

Структура штрихового кода

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

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

Сочетание штрихов и пробелов, а также их расстановка внутри кажого цифрового знака, в зависимости от вида паритета записывается в виде комбинаций кода A, B или C, которые приведены в таблице 2.

Таблица 2. Перевод цифр в двоичную систему записи в зависимости от четности паритета

ЦифраКод цифры в двоичной системе
Комбинация AКомбинация BКомбинация C
нечетный паритетчетный паритетчетный паритет
0000110101001111110010
1001100101100111100110
2001001100110111101100
3011110101000011000010
4010001100111011011100
5011000101110011001110
6010111100001011010000
7011101100100011000100
8011011100010011001000
9000101100101111110100

Итак, любой символ кода EAN-13 состоит из шести цифровых знаков переменного паритета (исполненных в комбинациях A или B) в левой половине символа кода, а также шести цифровых знаков четного паритета (исполненных только в комбинации C) в правой половине символа кода, двух краевых и одного разделительного знаков.

Цифра, стоящая на 13-й позиции (она-же первая при чтении кода слева направо) определяет, в какой комбинации A или B, согласно паритета цифрового знака, будет исполнена каждая из цифр левой половины символа кода. По таблице 2.

Таблица 2. Исполнение цифровых знаков в комбинациях A и B в 7-12 позициях

Теперь рассмотрим пример кодирования кода EAN-13, который рассматривали выше: 4||018993||404787||.

В итоге мы получаем штриховой код, который приведен ниже. Распечатайте и считайте его!

Источник

Штриховое кодирование: программная реализация на С#

Приветствую! Речь пойдет о создании программы, которая сможет кодировать информацию в штрих код. Рассмотрим мы два варианта: EAN13 и Code 128.

Для начала разберемся что же предоставляет собой штрих код, и начнем с формата EAN 13. Внешне штрих код состоит из черных и белых полос. Каждая из полос согласно стандарту имеет ширину 0,33мм. А теперь посмотрим немного глубже. Согласно стандарту, информация в штрих коде алгоритмом конвертируется в последовательность нулей и единиц. Черная полоса соответствует «1» а белая соответственно «0». Таким образом мы получаем штрих код. То, что описано выше, справедливо для обоих форматов, а теперь перейдем к специфике форматов. EAN 13 код фактически может иметь 12 символов информации (обычно она разделяется на код страны, код завода, и.т.д., но никто вам не мешает создать штрих код с любыми цифрами). 13 цифра в штрих коде ( а он EAN 13 имеет их именно 13) является контрольной суммой. Она используется для проверки правильности декодирования, а также в зависимости то нее выбирается соответствующая таблица кодирования. Вот и все по формату EAN 13. Детальная информация об алгоритме кодирования и о расчете контрольной цифры есть тут:

Создавая программу, я сделал так:
Создал форму, на которой есть поля для выбора формата, ввода кода, регулятор ширины штриха ну и кнопка генерации кода и сохранение изображения в буфер обмена. Получилось так: алгоритм создания штрих кода ean 13. habr1. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-habr1. картинка алгоритм создания штрих кода ean 13. картинка habr1. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.
Проверял я с помощью Abbyy FineReader 10 Professional:
алгоритм создания штрих кода ean 13. habr2. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-habr2. картинка алгоритм создания штрих кода ean 13. картинка habr2. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.
Каждый из форматов штрих кода я оформил в виде отдельного класа, который из кода образует двоичную последовательность. Кстати, формат EAN 13 мне показался немного тяжелее в реализации в силу того, что там в зависимости от кода меняется таблица. в результате чего сам код рисовался так:

тут scale типа float — ширина полосы, задается из формы посредством DataBinding.

Еще немного расскажу о коде Code128. Тут кодирование просто по таблице, но структура имеет зону начала, конца, перемещения. Под перемещением имею ввиду переход от отдной кодовой таблице к другой (см. Code128A, Code 128B, Code 128C)

Данный код в отличие от предыдущего, имеет произвольную длину и может состоять из всех ASCII от 1 до 128. Об алгоритме есть достаточно много инфы, я брал отсюда: Источник

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

Источник

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

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

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

алгоритм создания штрих кода ean 13. . алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-. картинка алгоритм создания штрих кода ean 13. картинка . Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

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

Введение

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

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

алгоритм создания штрих кода ean 13. image loader. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-image loader. картинка алгоритм создания штрих кода ean 13. картинка image loader. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

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

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

алгоритм создания штрих кода ean 13. . алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-. картинка алгоритм создания штрих кода ean 13. картинка . Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

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, так что массив нужно инвертировать. Заодно вычислим среднее значение.

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

алгоритм создания штрих кода ean 13. 8zjppozs3lgketrraqtqeuzgj8g. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-8zjppozs3lgketrraqtqeuzgj8g. картинка алгоритм создания штрих кода ean 13. картинка 8zjppozs3lgketrraqtqeuzgj8g. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

Теперь нужно определить ширину одного «бита». Для этого мы выделим начало стартовой последовательности «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-коды.

Источник

Бесплатно Создать Штрихкоды Онлайн

Линейные Штрихкоды, 2D Коды, GS1 DataBar, Почтовые Штрихкоды и многие другие!

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

Ваши преимущества

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

Спасибо за Ваш интерес! Для получения дополнительной информации, пожалуйста, свяжитесь с нами!

Scan-IT to Office

Приложение Scan-IT to Office (для Android, iOS) отправляет удаленно собранные данные и штрихкоды в реальном времени в Excel, Word, Google Таблицы, базы данных или любые другие приложения для ПК или Mac.

Онлайн генератор этикеток

Создавайте этикетки со штрих-кодом и отраслевые этикетки и формы этикетки VDA 4902, AIAG, MAT и т.д. Попробуйте бесплатную демо-версию Онлайн-генератора этикеток со штрихкодом для моментальной печати нужных Вам этикеток.

Онлайн-генератор QR-кодов

Используйте созданные QR-коды для перехода на веб-страницы, ввода телефонных номеров, сообщений, отправки твитов, передачи контактных данных, подключения к Wi-Fi сетям и т.д. Просто попробуйте!

Данный генератор штрихкодов является бесплатным

Вы можете использовать данный генератор штрих-кодов как часть Вашего некоммерческого веб-приложения или веб-сайта для создания динамических штрих-кодов с Вашими собственными данными. В ответ мы просим Вас разместить на Вашем сайте обратную ссылку с текстом «Генератор штрихкодов от TEC-IT». Использование логотипов TEC-IT опционально. Пожалуйста, свяжитесь с нами, если Вы хотите использовать данный сервис в коммерческих целях.

Для размещения обратной ссылки используйте подготовленный HTML-код.

Источник

Штрихкод EAN 13 – как расшифровать, сгенерировать, зарегистрировать и получить

Штрих код EAN 13 изначально расшифровывался как European Article Number. Затем он был переименован в International Article Number, хотя аббревиатура EAN сохранилась. Это 13-цифровой (12 знаков и контрольная цифра) стандарт штрихкода, являющий надмножеством 12-цифрового стандарта UPC, разработанного в 1970 году Джорджем Джозефом Лорелом. EAN-13 регламентирован организацией стандартизации EAN13.

алгоритм создания штрих кода ean 13. 13. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-13. картинка алгоритм создания штрих кода ean 13. картинка 13. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

13 цифр штрих кода EAN-13 сгруппированы следующим образом:

Штрих коды EAN-13 используются во всем мире для маркировки продающихся в розницу товаров. Закодированные цифры кодов EAN-13 представляют собой международные товарные номера, известные в Японии как Japanese Article Numbers (JAN). Все цифры, закодированные в штрихкодах UPC и EAN, известны как Global Trade Item Numbers (GTIN), они могут быть закодированы и в других штриховых кодах системы EAN.

Структура закодированных данных

Закодированные в штрихкоде цифры GTIN-13 состоят из четырёх компонентов. Это:

Однако если разность идущих подряд значений – четное число, система EAN не определит все смежные ошибки перестановки. Полный номер используется как условное кодовое обозначение для поиска информации о линейке продукции, закрепленной в базе данных; этот номер обычно не разбивается на компоненты в пользовательских системах.

Префиксы EAN

Первые две или три цифры GTIN любого товара определяют, в какой национальной организации EAN состоит производитель. Необходимо отметить, что коды EAN-13 редко начинались с 0, так как это просто более длинная форма 12-цифрового UPC, представленная тем же штрих кодом. Однако в последнее время все больше товаров, продаваемых за пределами США и Канады, получают EAN-13, начинающиеся с 0, так как теперь коды выдает подразделение EAN-US.

Региональные коды 200-299 заслуживают отдельного упоминания; большинство членов-организаций EAN определяют этот диапазон как свободный для внутреннего использования в розничной торговле (или внутри предприятий). Некоторые предприятия розничной торговли используют его для собственных (под собственной торговой маркой или нет) товаров (хотя многие получают собственный код изготовителя GLN для собственной торговой марки); некоторые используют, по меньшей мере, часть этого префикса для товаров, упаковываемых в магазине, к примеру, взвешиваемых на кассе перед продажей покупателю.

Помимо идентификатора продукта, штрихкод может содержать информацию о цене, количестве или весе товара (в зависимости от желания продавца); идентификатор продукта может быть назначен уполномоченным регистратором системы EAN или определен самим распространителем. Компании, традиционно использовавшие штрихкоды UPC, теперь переходят на префиксы EAN: 04 (для товаров) и 02 (для расфасованных в магазине товаров).

Расчет контрольной цифры

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

Для более полного описания и алгоритма см. также вычисление контрольной цифры ISBN. Глобальный идентификационный номер (GLN) также использует этот метод.

Стоимость штрихкодирования товара в Роскод

Стоимость услуг штрихкодирования в автономной некоммерческой организации Роскод зависит от длины диапазона кода. Полную информацию о стоимости услуг вы можете найти на этой странице сайта – стоимость штрихкодирования.

Как выглядит штрихкод

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

алгоритм создания штрих кода ean 13. shtrihkod1. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-shtrihkod1. картинка алгоритм создания штрих кода ean 13. картинка shtrihkod1. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

алгоритм создания штрих кода ean 13. shtrihkod2. алгоритм создания штрих кода ean 13 фото. алгоритм создания штрих кода ean 13-shtrihkod2. картинка алгоритм создания штрих кода ean 13. картинка shtrihkod2. Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.

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

Программа для генерации штрих кодов EAN 13 онлайн

Для быстрого получения штрихкода имеются специальные сервисы — онлайн-генераторы штрих кодов.

Как работает онлайн-генератор:

Можно одновременно создавать несколько штрихкодов, записывая цифры друг под другом. Онлайн-генератор очень удобен, если требуется создать штрих код для использования в пределах компании; в этом случае он начинается с цифры «2». Однако, для выпуска продукции на рынок нужно получить штрихкоды у официального регистратора. Для регистрации оставьте заявку на сайте Роскод, а также читайте полную информацию о процедуре, как получить штрих код.

Источник

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

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