Рубрики
Без рубрики

Генератор QR – кода Java- пример zxing

Генератор QR-кода Java, пример zxing, API с открытым исходным кодом для генерации QR-кода в java-программе, пример генератора QR-кода zxing, динамический QR-код, google диаграммы

Автор оригинала: Pankaj Kumar.

Сегодня мы рассмотрим программу генератора QR-кодов Java. Если вы разбираетесь в технологиях и гаджетах, то вы должны знать QR-код. В наши дни вы найдете его повсюду – в блогах, на сайтах и даже в некоторых общественных местах. Это очень популярно в мобильных приложениях, где вы сканируете QR-код с помощью приложения для сканирования QR-кода, и оно покажет вам текст или перенаправит вас на веб-страницу, если это URL.

Я наткнулся на это недавно и нашел это очень интересным. Если вы хотите узнать о QR-коде, вы можете найти много полезной информации на странице Википедии QR-код .

Генератор QR-кода Java

Когда я нашел изображения QR-кодов на стольких сайтах, я начал искать генератор QR-кодов java. Я изучил некоторые API с открытым исходным кодом и обнаружил, что zxing является простым и лучшим в использовании.

Если вы хотите сгенерировать изображение QR-кода, то нам нужна только его основная библиотека. Просто добавьте нижеприведенную зависимость в свой проект maven.


	com.google.zxing
	core
	3.3.2

Если вы хотите прочитать QR-изображение через командную строку, то нам нужно использовать библиотеку JavaSE. Вы можете добавить для него нижеприведенную зависимость.


	com.google.zxing
	javase
	3.3.2

Это также позволит вам узнать две дополнительные зависимости, необходимые для запуска из командной строки, как показано на рисунке ниже. Нам придется добавить эти банки в путь к классам, чтобы запустить клиентское приложение для считывания изображения QR-кода. Мы увидим это в действии позже в этом уроке.

пример zxing для создания изображения QR-кода

Вот программа, которую вы можете использовать для создания изображения QR – кода с помощью zxing API.

Вот программа, которую вы можете использовать для создания изображения QR – кода с помощью zxing API.

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

}

Вот файл изображения QR-кода, созданный этой программой. Вы можете использовать свое мобильное приложение для сканирования QR – кода, чтобы протестировать его. Он должен указывать на домашний URL-адрес JournalDev.

пример zxing для считывания QR-кода

Если у вас нет мобильного приложения для его тестирования, не волнуйтесь. Вы можете прочитать QR-код с помощью zxing API через командную строку.

Ниже приведена команда для считывания файла изображения QR – кода. Обратите внимание на дополнительные банки в пути к классам, от которых зависит 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

На рисунке ниже показан результат, полученный этой командой.