Fügen Sie Bilder in QR QR -Code ein
QR -Codes sind endlich populär geworden. Jetzt sind QR -Code -Tags für Anzeigen großer und kleiner Produkte auf Straßen und Gassen überall, und die meisten von ihnen sind keine einfachen reinen QR -Codes, sondern QR -Codes mit Persönlichkeitsymbole in der Mitte.
Früher habe ich ein Programm durchgeführt, das das Open -Source -Projekt von Google zum Implementieren von QR -Code und 1R -Code -Codierung und -decodierung verwendet und den Quellcode geöffnet hat (Barcode- und QR -Code -Codierung und Decodierer mit C#implementiert). Heute füge ich weiterhin kleine Bilder in der Mitte des QR -Codes hinzu, basierend auf diesem Programm.
Hintergrundwissen
QRCode verwendet den Reed-Solomon-Code, um Fehlerbehebungen vorzunehmen. Für uns hat die Reed Solomon -Codierung zwei sehr wichtige Eigenschaften. Erstens handelt es sich um einen expliziten Systemcode, was bedeutet, dass Sie die ursprünglichen Informationen in der endgültigen Codierung direkt sehen können. Es ist so, als ob wir "Hello World" codieren, wir sehen endlich "Hello World" und die wenigen fehlertoleranten Codes, die ihnen folgen. Zweitens kann die Reed Solomon -Codierung "exorbitiert" werden. Nachdem das Ergebnis von zwei verschiedenen Reed -Solomon -Codierungen berechnet wurde, wird ein neuer Reed -Solomon -Code erhalten, und der ursprüngliche Code dieses neuen Codes ist exklusiv oder der ursprünglichen zwei Originalcodes. Wenn Sie wissen möchten, warum diese beiden Funktionen funktionieren, sehen Sie sich die arrithmetische und red-Solomon-Codierung von Finite-Feldern an.
QRCode
Ein QRCode -Bild definiert einige eindeutige Deskriptoren, um Menschen oder Computern dabei zu helfen, sich als QRCode zu identifizieren. Diese Art von Deskriptor variiert geringfügig mit der Größe des QRCode - desto größer ist das QRCode -Bild mehr Deskriptoren. Für die menschliche Erkennung ist jedoch das offensichtlichste Merkmal, dass die Symbole der vier Bildten des Bildes festgelegt sind. Wenn Sie solche vier Ecken sehen, reagieren Menschen instinktiv: Dies ist ein QRCode.
(Tatsächlich können wir den Grad der Redundanz der Codierung beurteilen, indem wir die beiden Pixelpunkte in der oberen linken Ecke des Bildes lesen. Das Definieren von Schwarz ist 0 und weiß 1. Wenn Sie 00 sehen, ist es eine Redundanz von L-Level, 01 ist m, 10 ist Q und 11 ist die höchste Redundanz von H-Level.
Mit den obigen Arbeiten können wir den Ort der ursprünglichen Codeinformationen im Bild leicht kennen. Wenn Sie Ihre ursprünglichen Codeinformationen ändern, können Sie die Pixel im Bild ändern, damit Sie Bilder im Inneren zeichnen können. Davon abgesehen können einige der folgenden Situationen die Dinge interessanter machen.
Ich habe den QR -Code gemacht, um das Bild einzufügen:
Zuvor habe ich Ihnen einen kostenlosen 1QR -Code -Coding -Codec zur Verfügung gestellt, der mit dem Zxing Open Source -Projekt transformiert wurde, konnte das Bild jedoch nicht einfügen. Nach einiger Anstrengungen wurde das Bild erfolgreich in den QR -Code eingefügt und konnte codieren und dekodieren. Der Schlüssel zum Einsetzen von Bildern liegt in der Einstellung des Fehlertoleranzkoeffizienten des QR -Code, der im Quellcode ausführlich beschrieben wird.
Schnittstelle:
Um Bilder in den QR -Code einzufügen und sie normal zu dekodieren, achten Sie auf die folgenden zwei Punkte:
1. Der Fehlertoleranzkoeffizient zum Einstellen des QR -Code sollte hoch sein.
Im ZXing -Projekt kann der Fehlertoleranzkoeffizient festgelegt werden, wenn der QR -Code generiert wird:
Setzen
// QR -Code -Autor multiformatwriter mutiwriter = new com.google.zxing.multiformatwriter (); Hashtable tidt = new Hashtable (); Hint.Add (EncodeHintType.character_set, "utf-8"); Hint.add (EncodehintType.Error_Correction, com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.h); // QR -Code -Bytematrix bm = mutiwriter.encode (txtmsg.text, com.google.zxing.barcodeFormat.qr_code, 300, 300, Hinweis); Bitmap img = bm.tobitmap ();
2. Die Größe und Position des in der Mitte eingefügten Bilds sollten angemessen sein;
Wenn das mittlere Bild zu groß ist und den größten Teil des Bereichs des QR -Codes abdeckt, funktioniert es definitiv nicht. Wenn es zu klein ist, wird es keinen personalisierten Effekt haben.
Wie groß ist geeignet? Nach den Merkmalen des im vorherigen Artikel beschriebenen QR -Code sind die drei Ecken mit Quadraten Datenbereiche, die nicht abgedeckt werden können. Nur der Bereich in der mittleren und unteren rechten Ecken kann bedeckt werden, sollte jedoch nicht zu groß sein.
Nach dem Testen ist es angemessener, eine kleine Bildgröße im mittleren Bericht für 2/7 der Gesamtbreite des QR -Code zu haben, was nicht nur die Klarheit des Bildes erfüllt, sondern auch die verschlüsselten Daten des QR -Codes beeinflusst.
Kleine Bilder werden am besten in der Mitte platziert, und die Form kann unregelmäßig sein.
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!