Dépendances Maven ZXing
<dependencies>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class MainQRCode {
public static void main(String args[]) throws WriterException, IOException, NotFoundException {
// Les données à stocker dans le QR code
String data = "https://www.wikipedia.org/";
// Chemin où stocker l'image du QRCode
Path path = Paths.get("qrcode.png");
// QR code avec un faible niveau de correction d'erreur
Map < EncodeHintType, ErrorCorrectionLevel > encodeHintMap = new HashMap < EncodeHintType, ErrorCorrectionLevel > ();
encodeHintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
// Génération du QRCode 200x200 .png
BitMatrix matrix = new MultiFormatWriter().encode(data, BarcodeFormat.QR_CODE, 200, 200);
MatrixToImageWriter.writeToPath(matrix, "png", path);
/* Lecture du QRCode */
// L'image du QRCode
BufferedImage qrCodeBufferedImage = ImageIO.read(path.toFile());
// Préparation de l'image du QRCode
BinaryBitmap binaryBitmap = new BinaryBitmap(
new HybridBinarizer(new BufferedImageLuminanceSource(qrCodeBufferedImage)));
// Décodage du QRCode
Result result = new MultiFormatReader().decode(binaryBitmap);
System.out.println("Le QR Code contient : " + result.getText());
}
}
Commentaires
Enregistrer un commentaire