Übersicht
ZXing ist eine Open-Source-Java-Bibliothek zum Parsen von 1D/2D-Barcodes in mehreren Formaten. Ziel ist es, 1D-Barcodes der QR-Kodierung, Data Matrix und UPC dekodieren zu können. Es bietet Clients auf mehreren Plattformen, darunter: J2ME, J2SE und Android.
Praktischer Kampf
Dieses Beispiel zeigt, wie ZXing verwendet wird, um QR-Code-Bilder in einem Nicht-Android-Java-Projekt zu generieren und zu analysieren.
Installation
Maven-Projekt muss nur Abhängigkeiten einführen:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency>
QR-Codebild generieren
ZXing verfügt über die folgenden Schritte zum Generieren eines QR-Codebildes :
1.com.google.zxing.MultiFormatWriter generiert eine 2D-Bildmatrix basierend auf den Inhalts- und Bildkodierungsparametern.
2. com.google.zxing.client.j2se.MatrixToImageWriter generiert Bilddateien oder Bildcache BufferedImage basierend auf der Bildmatrix.
public void encode(String content, String filepath) throws WriterException, IOException { int width = 100; int height = 100; Map<EncodeHintType, Object> encodeHints = new HashMap<EncodeHintType, Object>(); encodeHints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, encodeHints); Path path = FileSystems.getDefault().getPath(filepath); MatrixToImageWriter.writeToPath(bitMatrix, "png", path); }
QR-Code-Bilder analysieren
ZXing verfügt über die folgenden Schritte zum Parsen von QR-Code-Bildern:
1. Verwenden Sie javax.imageio.ImageIO Lesen Sie die Bilddatei und speichern Sie sie als java.awt.image.BufferedImage-Objekt.
2. Konvertieren Sie java.awt.image.BufferedImage in ein com.google.zxing.BinaryBitmap-Objekt, das ZXing erkennen kann.
3.com.google.zxing.MultiFormatReader Analysiert com.google.zxing.BinaryBitmap basierend auf Bilddekodierungsparametern.
public String decode(String filepath) throws IOException, NotFoundException { BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filepath)); LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage); Binarizer binarizer = new HybridBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(binarizer); HashMap<DecodeHintType, Object> decodeHints = new HashMap<DecodeHintType, Object>(); decodeHints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); Result result = new MultiFormatReader().decode(bitmap, decodeHints); return result.getText(); }
Das Folgende ist ein Beispiel für ein generiertes QR-Code-Bild:
Das ist es Ich hoffe, dass der gesamte Inhalt dieses Artikels zum Lernen aller beiträgt und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.
Weitere verwandte Artikel zu kleinen Beispielen für das Generieren und Parsen von QR-Code-Bildern durch ZXing in Java finden Sie auf der chinesischen PHP-Website!