А сколькими способами смартфон huawei (honor) может отсканировать qr-код после установки на него операционной системы emui 9.1?
Прочитать (или сканировать) QR-код с помощью телефона Хуавей (Хонор) с ОС Android 9 Pie и с оболочкой EMUI 9.1 без установки специальных программ можно тремя способами:
1 способ:Прямое сканирование QR-кода через аккаунт Huawei.
2 способ:Сканирование QR-кода с помощью Помощника Google (Google Assistant).
3 способ:Сканирование QR-кода с помощью голосового Помощника Алиса от Яндекс.
1 способ: Порядок сканирование QR-кода через аккаунт Huawei.
1. Запускаем приложение Настройки телефона с Рабочего экрана смартфона.
2. В верхней части Настроек нажимаем на значок вашего аккаунта Huawei.
3. Далее нужно нажать на значок «Сканер» расположенного в верхней строке экрана справа.
4. На экране откроется окно «Сканирование кода», где камеру телефона нужно навести на QR-код. После того как вам удастся разместить весь QR-код в рамку для сканирования, телефон автоматически произведёт сканирование кода и расшифрует его.
5. Далее откроется окно с результатом расшифровки QR-кода. В нашем случае это оказался адрес сайта.
Затем вы можете скопировать этот URL-адрес в память телефона или перейти по этому адресу непосредственно на сайт.Для перехода на сайт нужно нажать на значок «Открыть URL-адрес».
6. После этого, если ваш смартфон имеет доступ к интернету, то вы перейдёте на сайт. В нашем случае это оказался сайт компании «InterlinkONE».
2 способ: Порядок сканирования QR-кода с помощью Помощника Google (GoogleAssistant).
1. Для сканирования QR-кода с помощью Google Assistant вам нужно запустить Помощника. Для этого нужно нажать на навигационную кнопку «Домой» внизу экрана и удерживать её некоторое время, либо для активации Помощника Google произнести вслух кодовое слово: «О’кей Гугл!».
2. Далее на вашем экране раскроется окно Помощника Google. Вам нужно выждать пару секунд, пока в середине нижней строки экрана не появится значок «Микрофон». Возле него слева появится значок приложения Google Lens. Данное приложение может сканировать QR-коды, поэтому нужно нажать на этот значок.
3. После этого на экране раскроется окно для сканирования. Нужно навести камеру телефона так, чтобы весь QR-код был виден на экране. Далее нужно пальцем на экране телефона нажать на QR-код для его сканирования.
4. После сканирования кода в нижней части экрана появится информация его расшифровки. В нашем случае это оказался адрес сайта.
Теперь вы можете перейти по этому адресу на сам сайт, либо скопировать его адрес в память телефона, либо переслать текст адреса.Для переход на сайт нужно нажать на значок «Веб-сайт».
5. После этого, если ваш телефон подключен к интернету, вы перейдёте на сам сайт. Это оказался сайт GooglePlay Маркет.
3 способ: Порядок сканирования QR-кода с помощью голосового Помощника Алиса от Яндекс.
1. Для сканирования QR-кода с помощью голосового Помощника Алиса от Яндекс вам нужно запустить Помощника Алиса. Для этого нужно нажать на значок Яндекс Браузера на Рабочем экране, а после в открывшемся браузере нажать на значок активации Алисы в виде фиолетового кружка внизу экрана.
2. Далее вслух произносите команду для Помощника: «Отсканируй QR-код!».
После этого на экране появится текст нашей команды «Отсканируй qr-код» и раскроется окно для сканирования QR-кода.
Нужно навести камеру так, чтобы весь QR-код вошёл в квадрат для сканирования. После это телефон сам автоматически произведёт сканирование кода и его расшифровку.
3. После того, как будет расшифрован QR-код, в нижней части экрана появится информация его расшифровки. В нашем случае это оказался адрес сайта Wikipedia.org.
Теперь вы можете перейти по этому адресу на сам сайт, либо, скопировать этот адрес в память телефона.Для перехода на сам сайт нужно нажать на значок «Перейти на сайт».
4. Если ваш телефон подключён к интернету, то вы успешно перейдёте на сайт Wikipedia.org.
Статьи, связанные с данной темой:
— Как считать QR-код с помощью смартфона HUAWEI (honor)?— Как подключиться к сети Wi-Fi через QR-коды на смартфонах HUAWEI (honor)?— Какими функциями можно воспользоваться на смартфоне HUAWEI (honor) с заблокированным экраном?
Используем смартфон в качестве сканера штрихкодов для компьютера
Как сканировать qr на хонор (хуавей) — инструкция
QR-код – это специальное изображение, которое в зашифрованном виде может хранить любую текстовую информацию, удобную для считывания камерой мобильного устройства. Как правило, данную технологию используют в журналах, на визитках, информационных щитах и прочих рекламных материалах, где в компактном виде необходимо разместить важную для клиента информацию. Как же отсканировать QR код на Хонор?
Инструкция
Сделать это довольно просто, так как утилита предназначенная для распознавания изначально находится в прошивке смартфона и ее не потребуется устанавливать отдельно. Так, например, чтобы сканировать QR код на Honor 8x, достаточно опустить шторку быстрого доступа и найти соответствующую иконку. В том случае, если ее нет – нажимаем на кнопку редактирования меню быстрого доступа и там выбираем пункт “Сканировать”.
В том случае, если сканер запускается в первый раз, система запросит доступ к камере (необходимо нажать на “Разрешить”), а после – отобразит изображение с видоискателя, который следует навести на QR-код.
Если код сгенерирован правильно, он моментально распознается системой и на экране отобразиться расшифрованное содержимое, которое можно будет сохранить в памяти мобильного устройства.
Стоит отметить, что распознавать можно не только изображение с камеры, но и обычные картинки. Так, например, сделав скриншот экрана с изображением QR-кода, открываем утилиту “Сканировать” и выбираем пункт “Скан изображения”, где ищем нужное изображение и распознает его содержимое.
Помимо распознавания QR вы можете также генерировать и свои зашифрованные изображения. Для этого в утилите “Сканер” необходимо нажать на кнопку “Создать” и там выбрать один из доступных вариантов: “Веб-сайт”, “Контакт” , “Программа”,”Wi-Fi” или произвольный “Текст”.
После генерации своего QR-кода его необходимо дать на расшифровку владельцу другого смартфона, который сможет быстро и безошибочно воспользоваться им.
Данная инструкция касается любых смартфон Хонор, но вполне возможно, что некоторые из них (особенно с устаревшими прошивками) могут быть лишены такой возможности. В этом случае можно установить любой другой сканер QR-кодов, которые можно найти в Google Play по запросу: сканер QR.
Другие инструкции:
Как сканировать документ на смартфонах honor и huawei
При посещении государственных учреждений, во время работы и учебы часто возникает необходимость отсканировать документ. Ксерокопия, которая сейчас на каждом углу, позволит получить бумажную копию, но не перенести документ в электронный вид. С задачей отлично справляется сканер, но, вероятней всего, под рукой его не окажется. На выручку, как всегда, придут смартфоны Huawei и Honor.
Чтобы сфотографировать документ на смартфоне Huawei или Honor, открываем камеру и заходим в раздел «Режимы съемки». В открывшемся меню, среди параметров съемки, выбираем «Сканер». Наводим камеру на документ и фотографируем.
На несколько секунд появится картинка будущего документа в электронном виде. Дальше можно фотографировать остальные страницы, если это необходимо или перейти в режим «Просмотр снимка» для дальнейшей работы с документом. Выровнять картинку, если часть не попала в выделенную зону, перенастроить формат можно в настройках — значок «Сканер» в правом верхнем углу.
После внесения всех изменений, в верхнем правом углу нажимаем галочку, отсканированный документ сохраняется в галерее. Открыв, его можно не только использовать для работы, но и отредактировать заново.
Поделиться ссылкой:
Новости партнёров и реклама
Код data matrix
Код Data Matrix был изобретен компанией International Data Matrix в середине 1980-х для программы Space Shuttle, где требовалась маркировка большого количества деталей. Data Matrix был разработан до PDF417, то есть PDF417 не мог предшествовать Data Matrix, как указывается в некоторых источниках.
DataMatrix — это двумерный штрих-код, который может хранить до 3116 цифр и до 2335 букв. Информация в баркоде Data Matrix кодируется черными и белыми квадратами (модулями) при этом минимальный линейный размер модуля — 0.255 мм.
Шаблон поиска (finding pattern) в виде буквы «L» — две сплошные линии на внешней стороне кода Data Matrix.Этот шаблон позволяет сканеру штрих-кода задать изображению правильную ориентацию и считать информацию в правильном порядке.
Второй важный шаблон, необходимый для понимания кода машиной, — шаблон синхронизации (clocking pattern, clock track). Он необходим для информирования системы считывания о количестве модулей в матрице и для правильного распознавания сетки, на которой размещены модули.
Зона тишины (quiet zone) — это область, отделяющая границу штрих-кода от фона и других изображений. Для Data Matrix ширина «зоны тишины» равна линейному размеру используемого модуля. Маленькие габариты для зоны тишины позволяют минимизировать площадь нанесения Data Matrix на поверхность.
Специфика Data Matrix позволяет читать его как в прямом так и отраженном свете (то есть при использовании инвертированного изображения, при котором светлые модули становятся темными).
Еще одно преимущество Data Matrix, что от квадратные модули могут быть заменены на круглые. Это дополнительно расширяет возможности использования различных технологий нанесения, например в виде тиснения или ударной гравировки. Впрочем, эта же технология замены квадратного модуля на круглый взята на вооружения и в других разновидностях кодов, например в QR-коде.
Стандартизированный код Data Matrix сегодня рассматривается как ключевое звено идентификации и маркировки фармацевтических товаров и медицинских изделий. С 1 июля 2020 года маркировка кодами Data Matrix станет обязательной для всех лекарств, находящихся в обороте в России.
Подробный процесс создания Data Matrix описан здесь.
На заблокированном экране смартфона
Инструкция для заблокированного экрана:
- Нажмите клавишу питания.
- Откройте дополнительную панель инструментов — проводим по дисплею вверх.
- В высветившейся внизу панели нажмите на изображение глаза.
- Высвечивается окошко сканирования, где требуется выбрать значок QR. Подводим код, чтобы он оказался в рамочке, данные считаются и отобразятся на дисплее.
Представленная функция имеется не во всех смартфонах. Она встраивается во все современные модели, начиная с EMUI 8.
При помощи камеры
Порядок действий:
- Запустите камеру.
- В нижней панели меню пролистайте вправо и выберите опцию «Еще».
- Выберите «Сканер».
- Сделайте фотографию кода.
- Откройте фотографию и внизу кликните на «Еще».
- Выберите опцию «Отсканировать».
Прокачиваем reaver
В HOWTO мы показали самый простой и наиболее универсальный способ использования утилиты Reaver. Однако реализация WPS у разных производителей отличается, поэтому в некоторых случаях необходима дополнительная настройка. Ниже я приведу дополнительные опции, которые могут повысить скорость и эффективность перебора ключа.
- Можно задать номер канала и SSID точки доступа: # reaver -i mon0 -b 00:01:02:03:04:05 -c 11 -e linksys
- Благотворно сказывается на скорости брутфорса опция ‘—dh-small’, которая задает небольшое значение секретного ключа, тем самым облегчая расчеты на стороне точки доступа: # reaver -i mon0 -b 00:01:02:03:04:05 -vv —dh-small
- Таймаут ожидания ответа по умолчанию равен пяти секундам. При необходимости его можно изменить: # reaver -i mon0 -b 00:01:02:03:04:05 -t 2
- Задержка между попытками по умолчанию равна одной секунде. Она также может быть настроена: # reaver -i mon0 -b 00:01:02:03:04:05 -d 0
- Некоторые точки доступа могут блокировать WPS на определенное время, заподозрив, что их пытаются поиметь. Reaver эту ситуацию замечает и делает паузу в переборе на 315 секунд по умолчанию, длительность этой паузы можно менять: # reaver -i mon0 -b 00:01:02:03:04:05 —lock-delay=250
- Некоторые реализации протокола WPS разрывают соединение при неправильном PIN-коде, хотя по спецификации должны возвращать особое сообщение. Reaver автоматически распознает такую ситуацию, для этого существует опция ‘—nack’: # reaver -i mon0 -b 00:01:02:03:04:05 —nack
- Опция ‘—eap-terminate’ предназначена для работы с теми АР, которые требуют завершения WPS-сессии с помощью сообщения EAP FAIL: # reaver -i mon0 -b 00:01:02:03:04:05 —eap-terminate
- Возникновение ошибок в WPS-сессии может означать, что АР ограничивает число попыток ввода PIN-кода, либо просто перегружена запросами. Информация об этом будет отображаться на экране. В этом случае Reaver приостанавливает свою деятельность, причем время паузы может быть задано с помощью опции ‘—fail-wait’: # reaver -i mon0 -b 00:01:02:03:04:05 —fail-wait=360
Рисунок 6. Reaver Pro — железка от создателей Reaver
С разблокированного смартфона
Воспользуйтесь ассистентом Google. Инструкция:
- Запустите ассистента, зажав в навигационной панели круг.
- Когда запустится помощник Гугл нажмите на кнопку, как изображено на скриншоте.
- Наведите камеру на код и ознакомьтесь с адресом сайта. Для перехода по ссылке кликните по лупе.
- В результате система продемонстрирует интересующую информацию.
Сканирование qr-кодов с помощью huawei scan kit | android tools
Для удобства создания приложений на Android было разработано множество различных сервисов, позволяющих автоматизировать различные процессы или упростить их выполнение. Как правило, большая часть этих сервисов создана Google и входит в Google Mobile Services (GMS), который предоставляет широкий ассортимент инструментов для работы. И хотя они работают на большинстве устройств с Android, существуют устройства, по той или иной причине не поддерживающие эти сервисы, и в этом случае приходится искать альтернативы.
Например, одними из таких устройств являются смартфоны и планшеты Huawei. В связи с тем, что на новых устройствах Huawei более нет поддержки GMS, компания перезапустила и обновила свой собственный аналог под названием Huawei Mobile Services (HMS). Его задачей является создание удобной экосистемы, позволяющей создавать приложения быстро и качественно, и предоставление как необходимых для работы приложения сервисов (карты, облачные хранилища, платежи, аутентификация), так и дополнительных, расширяющих возможности приложения. Специально для разработчиков в HMS есть компонент HMS Core, который предоставляет все необходимые API и SDK для работы с сервисами. Кроме того, как заверяют Huawei, HMS Core написан таким образом, чтобы разработчикам было легко переписать свои приложения, работающие на GMS, под HMS.
Рассмотрим работу HMS Core на примере сервиса для генерации и сканирования QR-кодов. В одном из наших приложений, «Менеджер паролей от Wi-Fi сетей«, используется генерация Huawei, содержащих данные сохранённой сети, которыми затем можно поделиться с другими людьми. Однако в приложении нет возможности сканировать этот код и прочитать его содержимое. Добавим эту возможность.
Сам HMS Core не является монолитным, он разделяется на ряд отдельных компонентов, каждый из которых работает с определённым сервисом. В нашем случае, для добавления сканера QR-кодов нам понадобится инструмент под названием Scan Kit.
Scan Kit позволяет сканировать и считывать все основные 1D и 2D штрихкоды (к которым также относится и QR-код), а также генерировать свои собственные. Он автоматически обнаруживает, увеличивает и распознаёт штрихкоды, что позволяет ему считывать даже самые маленькие штрихкоды без проблем. Кроме того, Scan Kit может работать даже при плохой освещённости или в случае, если штрихкод замаран либо отражает, что позволяет эффективно сканировать в любых условиях. Сервис может работать как на Android, так и на iOS, но в данном случае нас интересует только Android.
Scan Kit умеет распознавать 13 основных форматов штрихкодов:
- 1D штрихкоды: EAN-8, EAN-13, UPC-A, UPC-E, Codabar, Code 39, Code 93, Code 128 и ITF;
- 2D штрихкоды: QR код, Data Matrix, PDF417 и Aztec.
Также важной особенностью Scan Kit является то, что библиотека может работать в разных режимах:
- Default View — с использованием вьюхи и активности по умолчанию;
- Customized View — с использованием собственной вьюхи;
- Bitmap — позволяет лучше настраивать процесс сканирования;
- MultiProcessor — использует ML Kit для распознавания нескольких объектов одновременно.
Как можно понять, Default View является самым простым вариантом, когда не нужно создавать свой интерфейс для сканирования и достаточно просто получить результат, что избавляет от написания лишнего кода. Customized View отличается от предыдущего лишь тем, что интерфейс и дизайн создаётся уже разработчиком. Bitmap в свою очередь определяет, далеко ли находится сканируемый штрихкод, и если да — возвращает величину, на которую следует увеличить изображение. И наконец MultiProcessor использует средства машинного обучения, чтобы ещё эффективнее сканировать штрихкоды.
Для нашего приложения воспользуемся Default View, поскольку нет необходимости создавать отдельный интерфейс, а автоматической работы сканера будет вполне достаточно для результата.
Приступим к встраиванию этой библиотеки в приложение.
Важно! Для того, чтобы работать с HMS, нужно предварительно зарегистрировать аккаунт разработчика в HUAWEI Developer, после чего пройти верификацию и создать проект приложения в консоли Huawei.
Перед добавлением библиотеки нам понадобится скачать файл конфигурации и добавить его в проект. Для этого зайдём в консоль AppGallery Connect и откроем настройки приложения, для которого мы встраиваем Scan Kit. Нужный файл конфигурации называется agconnect-services.json.
Затем этот файл закинем в папку app проекта приложения.
Теперь добавим репозиторий Huawei и плагин AppGallery Connect. Для этого откроем build.gradle проекта и добавим в него следующие строки:
buildscript { repositories { mavenLocal() jcenter() google() maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... classpath 'com.huawei.agconnect:agcp:1.3.1.300' } } apply plugin: 'nebula.lint' gradleLint.rules = ['all-dependency'] allprojects { repositories { google() jcenter() mavenCentral() maven { url "https://jitpack.io" } maven { url "https://maven.google.com" } maven {url 'https://developer.huawei.com/repo/'} } }
После этого перейдём в build.gradle модуля приложения и добавим в него зависимость с библиотекой Scan Kit и плагин AppGallery Connect.
dependencies { ... implementation 'com.huawei.hms:scanplus:1.2.1.300' } apply plugin: 'project-report' apply plugin: 'com.huawei.agconnect'
Стоит отметить, что Scan Kit предоставляет два варианта SDK: Scan Kit SDK и Scan Kit SDK Plus. Оба варианта одинаковы по функционалу, однако различаются по качеству распознавания на устройствах не от Huawei. Scan Kit SDK использует на таких устройствах общие средства распознавания, которые работают несколько хуже, чем те, которые используются на устройствах Huawei. Scan Kit SDK Plus в свою очередь использует улучшенное распознавание, что позволяет одинаково эффективно работать со шрихкодами как на устройствах Huawei, так и на любых других. Поэтому если прибавка к размеру APK в ~2 MB не критична, лучше всего использовать вариант Plus.
Примечание: HMS Core добавляет в приложение все поддерживаемые языки, что может добавить лишний размер к APK. Чтобы ограничиться только списком тех языков, которые нужны, откроем build.gradle модуля приложения и добавим нужные языки в defaultConfig:
defaultConfig {
...
resConfigs "en", "zh-rCN", "zh-rTW", "de", "el", "es-rES", "es-rUS", "fa", "fi", "fr", "hi", "it", "ja", "ko", "pt-rBR", "pt-rPT", "ru"
}
Чтобы библиотека корректно работала в релизной версии приложения, добавим следующие исключения в proguard-rules.txt:
-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
Теперь, когда библиотека добавлена и подготовлена, можно приступить непосредственно к коду. Так как сканирование будет производиться с использованием камеры, в манифест нужно добавить разрешение CAMERA, которое затем будет запрашиваться у пользователя перед началом сканирования. Для этого добавим в AndroidManifest.xml следующую строку:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="com.rusdelphi.wifipassword">
...
<uses-permission android:name="android.permission.CAMERA"/>
...
Когда пользователь захочет сканировать QR-код, нужно проверить, имеет ли приложение разрешение на использование камеры, и если нет — запросить его. Если же разрешение есть — вызываем метод takeBarcodePicture(), в котором будет производиться инициализация сканирования.
if (mainView != null) { if (Tools.hasSelfPermission(mainView.getActivity(), Manifest.permission.CAMERA)) { takeBarcodePicture(); } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { mainView.getActivity() .requestPermissions( new String[] { Manifest.permission.CAMERA }, REQUEST_PERMISSION_TAKE_PHOTO); } } }
Результат запроса приходит в метод onRequestPermissionResult() активности, где мы проверяем, согласился ли пользователь предоставить права приложению или нет.
if (Tools.verifyAllPermissions(grantResults)) { takeBarcodePicture(); } else { mainView.onShowToast(R.string.permission_denied); }
Когда разрешение на камеру есть, в методе takeBarcodePicture() определяем параметры для сканирования и вызываем метод библиотеки startScan() с заданными параметрами.
private void takeBarcodePicture() { if (mainView == null) return; HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE, HmsScan.DATAMATRIX_SCAN_TYPE).create(); ScanUtil.startScan(mainView.getActivity(), REQUEST_CAMERA, options); }
Как уже упоминалось выше, мы воспользовались вариантом сканирования по умолчанию, поэтому нам нужно добавить активность библиотеки в свой AndroidManifest.xml:
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />
Результат выполнения сканирования возвращается в метод onActivityResult() активности и имеет код, который был присвоен в startScan(), т.е. REQUEST_CAMERA.
case REQUEST_CAMERA: { if (resultCode == Activity.RESULT_OK) { HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT); if (obj != null) { if (BuildConfig.DEBUG) Log.d("HmsScan", obj.getOriginalValue()); if (obj.getScanTypeForm() == HmsScan.WIFI_CONNECT_INFO_FORM) { HmsScan.WiFiConnectionInfo wifiConnectionInfo = obj.getWiFiConnectionInfo(); String password = wifiConnectionInfo.getPassword(); String ssidNumber = wifiConnectionInfo.getSsidNumber(); int cipherMode = wifiConnectionInfo.getCipherMode(); showAddButtonDialog(ssidNumber, password, cipherMode); } } } break; }
Если активность библиотеки вернула результат RESULT_OK, то получаем объект HmsScan, содержащий результат сканирования QR-кода. В зависимости от того, какие данные были зашифрованы в QR-код, у объекта HmsScan следует вызывать разные методы для получения этих данных. Поскольку QR-код может нести в себе самую разную информацию, следует перед началом работы проверить, какие данные в нём находятся. Чтобы убедиться, что отсканированный QR-код содержит именно данные о Wi-Fi сети, вызовем метод getScanTypeForm(). Так как мы генерировали QR-код с данными Wi-Fi сети, то нам нужно узнать SSID сети, пароль и тип шифрования. Таким образом, нам следует вызывать методы getSsidNumber(), getPassword() и getCipherMode() соответственно.
После этого мы передаём эти параметры в showAddButtonDialog(), где показываем им пользователю.
Таким образом, используя возможности HMS Core можно легко работать с QR-кодами, причём нет привязки к конкретно устройствам Huawei, сканирование работает одинаково хорошо и на других устройствах. Scan Kit предоставляет богатый инструментарий и для просто внедрения, и для точной настройки, что делает его хорошей заменой аналогичных сервисов Google.
Через «быстрый поиск приложений»
Для того чтобы включить панель быстрого поиска приложений, нужно оказаться на рабочем столе устройства и сделать свайп вниз. Сверху появится поисковая строка, в левой части который вы и увидите иконку QR сканера.
Нажав по ней, смартфон перейдёт в режим сканирования, и вы увидите область в виде квадрата. Держите QR-код внутри этой области, и как результат — смартфон покажет полученную ссылку в новом окне.
Узнайте больше о huawei
Эра 2-d
С развитием технологий обработки информации, на смену одномерным (линейным) штрих-кодам пришли двумерные. Если в линейных (одномерных) кодах используются штрихи, то в двумерных (и многомерных) в качестве элементов кодирования могут выступать уже другие фигуры, поэтому для того, чтобы дифференцировать одни от других, здесь будем называть многомерные коды баркодами.
Исследования и разработки двумерных кодов начались во многих странах мира в 1980-х годах, так как объема кодируемой в линейных кодах информации оказалось явно недостаточным. Их появление стало естественной эволюцией систем кодирования, и одновременно технологий распознавания, программных и аппаратных возможностей распознающих систем.
Кроме этого возникала необходимость маркировать кодами буквально все: не только, допустим, узлы агрегатов, но и отдельные детали. Поэтому возникала необходимость миниатюризировать код и повысить плотность кодируемой информации на единицу площади.
В двумерном коде, как и следует из названия, кодирование происходит не по одному направлению, а по двум. Действительно, если расположить несколько одномерных кодов в виде чередующихся фрагментов, получится простейший двумерный код типа Stacked Linear (составной линейный). Если мы “упакуем” модули в квадрат — получится матричный баркод (Matrix).
Пример составного линейного баркода — PDF417, появившийся в 1991 году и запатентованный в 1993. Код PDF417 состоит из строк, образуемых “словами” — набором из чередующихся штрихов и пробелов (4 штриха, 4 пробела — первое число из названия кода). Общая длина каждого слова — 17 модулей (второе число в названии кода).
Помимо собственно содержательных слов, каждая строка состоит из старт-паттерна (крайнего левого набора, ключевых слов (индикаторов — они занимают крайние позиции на строке), необходимых для коррекции ошибок, и стоп-паттерна (Впрочем, существует также и так называемый “усеченный PDF417” (truncated), где исключен индикатор правой строки и уменьшен шаблон остановки до одной линии.
Таким образом, усеченные PDF417 занимают меньше места, но они более восприимчивы к неправильному прочтению. Такой вариант PDF417 используют только там, где риск повреждения изображение кода минимальный). Так как все слова имеют одинаковую длину, размещенные одна под другой строки образуют колонки.
В самом коде PDF417 как количество строк, так и количество столбцов может варьироваться: код может содержать от 3 до 90 строк, и иметь ширину от 3 до 30 столбцов включительно, не считая столбцов со словами индикаторами. Подробная статья про кодирование PDF417 недавно выходила на Хабре здесь, а о возможности его “ручного” декодирования — здесь.
Особенность кода PDF417 заключается в возможности кодировать информацию в текстовом режиме, числовом режиме и режиме данных (байт-режиме).
Так как в PDF417 возросло количество кодируемой информации, для ее корректного считывания и декодирования в коде применены механизмы коррекции ошибок. Это достигается путем добавления ключевых слов, с помощью которых машина может восстановить потерянные или считанные с ошибкой данные.
Как и предшественник — линейный штрих-код, PDF417 создавался в тот период, когда мобильные телефоны представляли собой устройства чуть меньше чемодана, а о встроенных камерах, пожалуй, даже не задумывались. Поэтому его использование подразумевало наличие специализированных сканеров, предназначенных для считывания такого кода. Это объясняет сложность данного штрих-кода и повышенные требования к разрешению печати.
Баркоды PDF417 широко используются для маркировки медицинских препаратов, наносятся на документы в системах электронного документооборота, применяются на бланках налоговых деклараций и проездных билетов.