Вот программа, которую вы можете использовать для создания изображения QR-кода с помощью zxing API.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.adly.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 { /** * @param args * @throws WriterException * @throws IOException */ public static void main(String[] args) throws WriterException, IOException { String filePath = 'D:\\Pankaj\\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 API через командную строку.
Я нахожусь на ОС Windows, и вот команда, чтобы проверить это. Если вы работаете в Unix / Linux / Mac OS, измените его соответствующим образом.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
D:\Pankaj\zxing>java -cp javase\javase.jar;core\core.jar com.google.zxing.client.j2se.CommandLineRunner D:\Pankaj\JD.pngfile:/D:/Pankaj/JD.png (format: QR_CODE, type: URI):Raw result:http://www.journaldev.comParsed result:http://www.journaldev.comFound 4 result points. Point 0: (35.5,89.5) Point 1: (35.5,35.5) Point 2: (89.5,35.5) Point 3: (80.5,80.5) |
Совет по генерации динамического QR-кода
Если вы хотите генерировать QR-код динамически, вы можете сделать это с помощью Google Charts Tools.
Для приведенного выше сценария URL будет https://chart.googleapis.com/chartchs=125 × 125&cht=qr&chl=http://www.journaldev.com.
Приятного кодирования и не забудьте поделиться!
Ссылка: Сгенерируйте изображение QR-кода из Java-программы от нашего партнера JCG Панкаджа Кумара в блоге Developer Recipes .
