Вот программа, которую вы можете использовать для создания изображения 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.png file : /D : /Pankaj/JD .png ( format : QR_CODE, type : URI): Raw result: http: //www .journaldev.com Parsed result: http: //www .journaldev.com Found 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 .