Maison  >  Article  >  Java  >  Un petit exemple de génération et d'analyse d'images de code QR à l'aide de ZXing en Java

Un petit exemple de génération et d'analyse d'images de code QR à l'aide de ZXing en Java

高洛峰
高洛峰original
2017-01-20 14:16:191679parcourir

Présentation

ZXing est une bibliothèque Java open source permettant d'analyser des codes-barres 1D/2D dans plusieurs formats. L'objectif est de pouvoir décoder les codes-barres 1D de l'encodage QR, Data Matrix et UPC. Il fournit des clients sur plusieurs plateformes, notamment : J2ME, J2SE et Android.

Combat pratique

Cet exemple montre comment utiliser ZXing pour générer et analyser des images de code QR dans un projet Java non Android.

Installation

Le projet Maven n'a besoin que d'introduire des dépendances :

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

Générer une image de code QR

ZXing suit les étapes suivantes pour générer une image de code QR :

1.com.google.zxing.MultiFormatWriter génère une matrice d'image 2D basée sur les paramètres de contenu et d'encodage de l'image.

2. com.google.zxing.client.j2se.MatrixToImageWriter génère des fichiers image ou un cache d'image BufferedImage basé sur la matrice d'image.

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);
}

Analyse des images de code QR

ZXing comporte les étapes suivantes pour analyser les images de code QR :

1. Utilisez javax.imageio.ImageIO. Lisez le fichier image et enregistrez-le en tant qu'objet java.awt.image.BufferedImage.

2. Convertissez java.awt.image.BufferedImage en un objet com.google.zxing.BinaryBitmap que ZXing peut reconnaître.

3.com.google.zxing.MultiFormatReader analyse com.google.zxing.BinaryBitmap en fonction des paramètres de décodage d'image.

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();
}

Ce qui suit est un exemple d'image de code QR générée :

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

C'est tout pour cet article, j'espère que tout le contenu sera utile à l'apprentissage de chacun, et j'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles connexes sur de petits exemples de génération et d'analyse d'images de code QR en Java, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Exemple Java - Web ScrapingArticle suivant:Exemple Java - Web Scraping