Génération de codes QR en Java : bibliothèque ZXing (guide détaillé)

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de codes QR en Java avec ZXing

Les codes QR sont devenus une partie intégrante du web moderne et des applications mobiles. Ils sont utilisés pour transmettre rapidement des liens, des coordonnées, du texte et d'autres informations. En Java, l'une des bibliothèques les plus populaires et les plus stables pour travailler avec les codes QR est ZXing (« Zebra Crossing »). Dans cet article, nous allons voir comment ajouter ZXing à un projet, générer un code QR et l'enregistrer dans un fichier.



Qu'est-ce que ZXing ?

ZXing (Zebra Crossing) est une bibliothèque open-source pour le traitement des codes-barres unidimensionnels et bidimensionnels, écrite en Java. Elle prend en charge la lecture et l'écriture des codes QR, Data Matrix, PDF417 et de nombreux autres formats. La bibliothèque est activement maintenue par la communauté et utilisée dans des milliers de projets.



Ajout de la bibliothèque

Pour travailler avec ZXing dans un projet Java (par exemple, Maven ou Gradle), vous devez ajouter deux dépendances principales :

  • core — contient les classes de base pour travailler avec les codes.
  • javase — contient les classes pour la génération d'images (PNG, JPEG) et le travail avec AWT.


Exemple pour Maven (pom.xml) :

<dependency>    <groupId>com.google.zxing</groupId>    <artifactId>core</artifactId>    <version>3.5.3</version></dependency><dependency>    <groupId>com.google.zxing</groupId>    <artifactId>javase</artifactId>    <version>3.5.3</version></dependency>


Pour Gradle, ajoutez dans build.gradle :

implementation 'com.google.zxing:core:3.5.3'implementation 'com.google.zxing:javase:3.5.3'


Exemple de base : génération d'un code QR

Créons une méthode simple qui prend un texte et un chemin de fichier, puis génère un code QR de 300x300 pixels.



import com.google.zxing.BarcodeFormat;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.QRCodeWriter;

import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path;

public class QRCodeGenerator {

public static void generateQRCode(String text, String filePath) throws WriterException, IOException { QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, 300, 300);

Path path = FileSystems.getDefault().getPath(filePath); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); }

public static void main(String[] args) { try { generateQRCode("https://pythonlib.ru", "qrcode.png"); System.out.println("Code QR créé avec succès !"); } catch (WriterException | IOException e) { System.err.println("Erreur lors de la génération du code QR : " + e.getMessage()); } }}


Après l'exécution, un fichier qrcode.png apparaîtra à la racine du projet avec un code QR contenant le lien vers https://pythonlib.ru.



Personnalisation des couleurs et de la taille

Par défaut, le code QR est généré en noir et blanc. Vous pouvez modifier la couleur du premier plan et de l'arrière-plan en utilisant MatrixToImageConfig :



import com.google.zxing.client.j2se.MatrixToImageConfig;

public static void generateColoredQR(String text, String filePath) throws WriterException, IOException { QRCodeWriter writer = new QRCodeWriter(); BitMatrix matrix = writer.encode(text, BarcodeFormat.QR_CODE, 400, 400);

// Couleur du premier plan (bleu), couleur de l'arrière-plan (jaune) int foregroundColor = 0xFF3366FF; // ARGB int backgroundColor = 0xFFFFFF00; MatrixToImageConfig config = new MatrixToImageConfig(foregroundColor, backgroundColor);

Path path = FileSystems.getDefault().get

Recommendations