Heim >Java >javaLernprogramm >Ein kleines Beispiel für das Generieren und Parsen von QR-Code-Bildern mit ZXing in Java

Ein kleines Beispiel für das Generieren und Parsen von QR-Code-Bildern mit ZXing in Java

高洛峰
高洛峰Original
2017-01-20 14:16:191723Durchsuche

Ü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:

java中ZXing 生成、解析二维码图片的小示例

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Java-Beispiel – Web ScrapingNächster Artikel:Java-Beispiel – Web Scraping