Генератор QR-кода Java — пример zxing
Сегодня мы рассмотрим программу генератора QR-кода Java. Если вы разбираетесь в технологиях и гаджетах, то вы должны знать о QR-коде. В наши дни вы найдете его повсюду — в блогах, на веб-сайтах и даже в некоторых общественных местах. Это очень популярно в мобильных приложениях, где вы сканируете QR-код с помощью приложения для сканирования QR-кода, и оно покажет вам текст или перенаправит вас на веб-страницу, если это URL-адрес. Я наткнулся на это недавно и нашел это очень интересным. Если вы хотите узнать о QR-коде, вы можете найти много полезной информации на странице QR-кода Википедии.
Генератор QR-кода Java
Когда я нашел изображения QR-кода на многих веб-сайтах, я начал искать генератор QR-кода Java. Я изучил некоторые API с открытым исходным кодом и обнаружил, что zxing является простым и лучшим в использовании. Если вы хотите сгенерировать изображение QR-кода, нам нужна только его основная библиотека. Просто добавьте приведенную ниже зависимость в свой проект maven.
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.2</version>
</dependency>
Если вы хотите прочитать QR-изображение через командную строку, нам нужно использовать его библиотеку JavaSE. Вы можете добавить ниже зависимость для него.
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.2</version>
</dependency>
Пример zxing для создания изображения QR-кода
Вот программа, которую вы можете использовать для создания изображения QR-кода с помощью zxing API. СоздатьQRCode.java
package com.journaldev.qrcode.generator;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class GenerateQRCode {
public static void main(String[] args) throws WriterException, IOException {
String qrCodeText = "https://www.journaldev.com";
String filePath = "JD.png";
int size = 125;
String fileType = "png";
File qrFile = new File(filePath);
createQRImage(qrFile, qrCodeText, size, fileType);
System.out.println("DONE");
}
private static void createQRImage(File qrFile, String qrCodeText, int size, String fileType)
throws WriterException, IOException {
// Create the ByteMatrix for the QR-Code that encodes the given String
Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<>();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix byteMatrix = qrCodeWriter.encode(qrCodeText, BarcodeFormat.QR_CODE, size, size, hintMap);
// Make the BufferedImage that are to hold the QRCode
int matrixWidth = byteMatrix.getWidth();
BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB);
image.createGraphics();
Graphics2D graphics = (Graphics2D) image.getGraphics();
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, matrixWidth, matrixWidth);
// Paint and save the image using the ByteMatrix
graphics.setColor(Color.BLACK);
for (int i = 0; i < matrixWidth; i++) {
for (int j = 0; j < matrixWidth; j++) {
if (byteMatrix.get(i, j)) {
graphics.fillRect(i, j, 1, 1);
}
}
}
ImageIO.write(image, fileType, qrFile);
}
}
пример zxing для чтения QR-кода
Если у вас нет мобильного приложения для тестирования, не волнуйтесь. Вы можете прочитать QR-код с помощью zxing API через командную строку. Ниже приведена команда для чтения файла изображения QR-кода. Обратите внимание на дополнительные jar-файлы в пути к классам, от которых зависит zxing.
$java -cp $HOME/.m2/repository/com/google/zxing/javase/3.3.2/javase-3.3.2.jar:.:$HOME/.m2/repository/com/google/zxing/core/3.3.2/core-3.3.2.jar:$HOME/.m2/repository/com/beust/jcommander/1.72/jcommander-1.72.jar:$HOME/.m2/repository/com/github/jai-imageio/jai-imageio-core/1.3.1/jai-imageio-core-1.3.1.jar com.google.zxing.client.j2se.CommandLineRunner JD.png
Вы можете загрузить проект maven QR Code Generator and Reader из нашего репозитория GitHub.