Вставьте изображения в QR QR -код
QR -коды наконец стали популярными. Теперь QR -коды теги о рекламе крупных и небольших продуктов на улицах и переулках повсюду, и большинство из них являются не простыми чистыми QR -кодами, а QR -коды со значками личности в середине.
Раньше я делал программу, которая использует ZXING Google с открытым исходным кодом для реализации QR -кода и кодирования и декодирования 1R, и открыл исходный код (кодирование штрих -кода и QR -кода, реализованные с C#). Сегодня я продолжаю добавлять небольшие изображения в середине QR -кода на основе этой программы.
Фоновые знания
QRCode использует код Reed-Solomon для исправления ошибок. Для нас у Рида Соломона кодирование имеет две очень важные характеристики. Во -первых, это явный системный код, что означает, что вы можете напрямую увидеть исходную информацию в окончательной кодировке. Это как когда мы кодируем «Hello World», мы, наконец, видим «Hello World» и несколько устойчивых кодов, которые следуют за ним. Во -вторых, кодирование Рида Соломона может быть «изгнано». После того, как результат двух разных кодировки Solomon рассчитывается, будет получен новый код Reed Solomon, и исходный код этого нового кода является исключительным или исходным двумя исходными кодами. Если вы хотите знать, почему эти две функции работают, см. Кодирование конечного поля и кодирование тростника.
Qrcode
Изображение QRCode определяет некоторые уникальные дескрипторы, чтобы помочь людям или компьютерам идентифицировать себя как QRCode. Этот вид дескриптора немного варьируется в зависимости от размера QRCode - чем больше изображение QRCode имеет больше дескрипторов. Однако для признания человека наиболее очевидной особенностью является то, что символы четырех угла изображения фиксируются. Видя такие четыре угла, люди инстинктивно реагируют: это qrcode.
(Фактически, мы можем судить степень избыточности кодирования, прочитав две точки пикселя в верхнем левом углу изображения. Определение черного-0, а белый-1. Тогда, если вы видите 00, это избыточность L-уровня, 01-M, 10-Q, а 11-избыточность уровня H-уровня.
С приведенной выше работой мы можем легко узнать местоположение исходной информации о коде на изображении. Затем, изменив свою исходную информацию о коде, вы можете изменить пиксели в изображении, чтобы вы могли рисовать изображения внутри. При этом некоторые из следующих ситуаций могут сделать вещи более интересными.
Я сделал QR -код, чтобы вставить изображение:
Ранее я предоставил вам бесплатный код кода 1QR, преобразованный с использованием проекта с открытым исходным кодом ZXING, но не смог вставить изображение. После некоторых усилий на этот раз картина была успешно вставлена в QR -код и смогла кодировать и декодировать. Ключ к вставке изображений заключается в корректировке коэффициента устойчивости к неисправности кода QR, который подробно описан в исходном коде.
интерфейс:
Чтобы вставить изображения в QR -код и декодировать их обычно, обратите внимание на следующие два балла:
1. Коэффициент устойчивости с ошибкой для установки QR -кода должен быть высоким;
В проекте ZXING коэффициент устойчивости к неисправности может быть установлен при создании QR -кода:
Установить encodehinttype.error_correction в errorcorrectionlevel.h
// Создание QR -кода автора MultiformatWriter MutiWriter = new com.google.zxing.multiformatwriter (); Hashtable Hint = new Hashtable (); Hint.Add (encodehinttype.character_set, "utf-8"); hint.add (encodehinttype.error_correction, com.google.zxing.qrcode.decoder.errorcorrectionlevel.h); // Сгенерировать QR -код Bytematrix bm = mutiWriter.encode (txtmsg.text, com.google.zxing.barcodeformat.qr_code, 300, 300, Hint); Bitmap img = bm.tobitmap ();
2. Размер и положение изображения, вставленного в середину, должны быть уместными;
Если средняя картина слишком большая и охватывает большую часть области QR -кода, это определенно не будет работать. Если он слишком маленький, это не будет иметь индивидуального эффекта.
Так насколько велик подходит? Согласно характеристикам QR -кода, описанным в предыдущей статье, три угла с квадратами являются областями данных, которые не могут быть покрыты. Только область в среднем и нижнем правом углах могут быть покрыты, но она не должна быть слишком большой.
После тестирования более уместно иметь небольшой размер изображения в средней учетной записи 2/7 от общей ширины QR -кода, что не только удовлетворяет ясности изображения, но также не влияет на зашифрованные данные QR -кода.
Маленькие картинки лучше всего размещены в центре, а форма может быть нерегулярной.
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!