艾特商业网

qr code中文翻译(qr code)

更新时间:2023-11-11 11:00:21

导读 你们好,最近小艾特发现有诸多的小伙伴们对于qr code中文翻译,qr code这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧

你们好,最近小艾特发现有诸多的小伙伴们对于qr code中文翻译,qr code这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、先去下载QRCode要用到的jar包

2、把这2个jar包添加到项目组,如果用到了maven的话,就可以直接在里面引用地址了,两种方式任何一种都可以,只要添加正确。

3、下面开始写代码

4、package com.wmsDemo.QRCode;

5、import java.awt.Color;

6、import java.awt.Graphics2D;

7、import java.awt.image.BufferedImage;

8、import java.io.File;

9、import java.text.SimpleDateFormat;

10、import java.util.Date;

11、import javax.imageio.ImageIO;

12、import com.swetake.util.Qrcode;

13、public class QRCodeEncoderHandler {

14、 public void encoderQRCode(String content, String imgPath) {

15、 try {

16、 Qrcode qrcodeHandler = new Qrcode();

17、 // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小

18、 qrcodeHandler.setQrcodeErrorCorrect('H');

19、 qrcodeHandler.setQrcodeEncodeMode('B');

20、 qrcodeHandler.setQrcodeVersion(5);

21、 System.out.println(content);

22、// int imgSize = 67 + 12 * (size - 1);

23、 byte[] contentBytes = content.getBytes("gb2312");

24、 BufferedImage bufImg = new BufferedImage(115, 115,

25、 BufferedImage.TYPE_INT_RGB);

26、 Graphics2D gs = bufImg.createGraphics();

27、 gs.setBackground(Color.WHITE);

28、 gs.clearRect(0, 0, 115, 115);

29、 // 设定图像颜色> BLACK

30、 gs.setColor(Color.BLACK);

31、 // 设置偏移量 不设置可能导致解析出错

32、 int pixoff = 2;

33、 // 输出内容> 二维码

34、 if (contentBytes.length > 0 && contentBytes.length < 800) {

35、 boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);

36、 for (int i = 0; i < codeOut.length; i++) {

37、 for (int j = 0; j < codeOut.length; j++) {

38、 if (codeOut[j][i]) {

39、 gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);

40、 }

41、 }

42、 }

43、 } else {

44、 System.err.println("QRCode content bytes length = "

45、 + contentBytes.length + " not in [ 0,120 ]. ");

46、 }

47、 gs.dispose();

48、 bufImg.flush();

49、 File imgFile = new File(imgPath);

50、 // 生成二维码QRCode图片

51、 ImageIO.write(bufImg, "png", imgFile);

52、 } catch (Exception e) {

53、 e.printStackTrace();

54、 }

55、 }

56、 /**

57、 * @param args the command line arguments

58、 */

59、 public static void main(String[] args) {

60、 //取当前时间为图片名称 带毫秒的

61、 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS" );

62、 Date d=new Date();

63、 String str=sdf.format(d);

64、 String imgPath = "D:/QRCode/twocode/"+str+".png";

65、 String content= "这是测试";

66、 QRCodeEncoderHandler handler = new QRCodeEncoderHandler();

67、 handler.encoderQRCode(content, imgPath);

68、 System.out.println("imgPath:"+imgPath);

69、 System.out.println("encoder QRcode success");

70、 }

71、 }

72、上面就是qrcode生成二维码的方式了,下面介绍下用zixing生成二维码的方式。

73、package com.wmsDemo.QRCode;

74、import com.google.zxing.common.BitMatrix;

75、import javax.imageio.ImageIO;

76、import java.io.File;

77、import java.io.OutputStream;

78、import java.io.IOException;

79、import java.awt.image.BufferedImage;

80、public final class MatrixToImageWriter {

81、 private static final int BLACK = 0xFF000000;

82、 private static final int WHITE = 0xFFFFFFFF;

83、 private MatrixToImageWriter() {}

84、

85、 public static BufferedImage toBufferedImage(BitMatrix matrix) {

86、 int width = matrix.getWidth();

87、 int height = matrix.getHeight();

88、 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

89、 for (int x = 0; x < width; x++) {

90、 for (int y = 0; y < height; y++) {

91、 image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);

92、 }

93、 }

94、 return image;

95、 }

96、 public static void writeToFile(BitMatrix matrix, String format, File file)

97、 throws IOException {

98、 BufferedImage image = toBufferedImage(matrix);

99、 if (!ImageIO.write(image, format, file)) {

100、 throw new IOException("Could not write an image of format " + format + " to " + file);

101、 }

102、 }

103、

104、 public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)

105、 throws IOException {

106、 BufferedImage image = toBufferedImage(matrix);

107、 if (!ImageIO.write(image, format, stream)) {

108、 throw new IOException("Could not write an image of format " + format);

109、 }

110、 }

111、}

112、package com.wmsDemo.QRCode;

113、import java.io.File;

114、import java.util.HashMap;

115、import java.util.Map;

116、import com.google.zxing.BarcodeFormat;

117、import com.google.zxing.EncodeHintType;

118、import com.google.zxing.MultiFormatWriter;

119、import com.google.zxing.common.BitMatrix;

120、public class Test {

121、 /**

122、 * @param args

123、 * @throws Exception

124、 */

125、 public static void main(String[] args){

126、

127、 try {

128、 String content = "这是测试xing二维码生成";

129、// String path = "D:/tt";

130、 String path = "D:/java/apache-tomcat-7.0.47/webapps/wmsDemo/QRCode";

131、 MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

132、 Map hints = new HashMap();

133、 //内容所使用编码

134、 hints.put(EncodeHintType.CHARACTER_SET, "gb2312");

135、 BitMatrix bitMatrix = multiFormatWriter.encode(content,BarcodeFormat.QR_CODE, 200, 200, hints);

136、 //生成二维码

137、 File outputFile = new File(path,"14.jpg");

138、 MatrixToImageWriter.writeToFile(bitMatrix, "jpg", outputFile);

139、 } catch (Exception e) {

140、 e.printStackTrace();

141、 }

142、

143、 }

144、}

145、通过上面的main方法测试可以看到二维码已经生成成功,并且扫描成功,好多参数如果有需要可以自己去设置

以上就是qr code这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!