QR-Code-Generierung in Java: Bibliothek ZXing (ausführliche Anleitung)

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

QR-Code-Generierung in Java mit ZXing

QR-Codes sind zu einem festen Bestandteil des modernen Webs und mobiler Anwendungen geworden. Sie werden verwendet, um schnell Links, Kontaktdaten, Text und andere Informationen zu übertragen. In Java ist ZXing („Zebra Crossing“) eine der beliebtesten und stabilsten Bibliotheken für die Arbeit mit QR-Codes. In diesem Artikel werden wir erläutern, wie Sie ZXing in Ihr Projekt einbinden, einen QR-Code generieren und in einer Datei speichern.



Was ist ZXing?

ZXing (Zebra Crossing) ist eine Open-Source-Bibliothek zur Verarbeitung von eindimensionalen und zweidimensionalen Barcodes, die in Java geschrieben wurde. Sie unterstützt das Lesen und Schreiben von QR-Codes, Data Matrix, PDF417 und vielen anderen Formaten. Die Bibliothek wird aktiv von der Community unterstützt und in tausenden Projekten eingesetzt.



Einbinden der Bibliothek

Um mit ZXing in einem Java-Projekt (z. B. Maven oder Gradle) zu arbeiten, müssen zwei Hauptabhängigkeiten hinzugefügt werden:

  • core – enthält die Basisklassen für die Arbeit mit Codes.
  • javase – enthält Klassen zur Bildgenerierung (PNG, JPEG) und für die Arbeit mit AWT.


Beispiel für 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>


Für Gradle fügen Sie in build.gradle hinzu:

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


Basisbeispiel: QR-Code generieren

Erstellen wir eine einfache Methode, die einen Text und einen Dateipfad entgegennimmt und einen QR-Code mit einer Größe von 300x300 Pixeln generiert.



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("QR-Code erfolgreich erstellt!"); } catch (WriterException | IOException e) { System.err.println("Fehler bei der QR-Code-Generierung: " + e.getMessage()); } }}


Nach dem Ausführen erscheint im Projektstammverzeichnis die Datei qrcode.png mit einem QR-Code, der den Link zu https://pythonlib.ru enthält.



Farbe und Größe anpassen

Standardmäßig wird der QR-Code schwarz-weiß generiert. Sie können die Vordergrund- und Hintergrundfarbe mit MatrixToImageConfig ändern:



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

// Vordergrundfarbe (blau), Hintergrundfarbe (gelb) int foregroundColor = 0xFF3366FF; // ARGB int backgroundColor = 0xFFFFFF00; MatrixToImageConfig config = new MatrixToImageConfig(foregroundColor, backgroundColor);

Path path = FileSystems.getDefault().get

Empfehlungen