zxing生成和解析二维码

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 00:59   25   0

zxing 2.2+版本,jar是通过JDK 1.7编译的,本地环境JDK 1.6

此处使用了2.2版本(兼容JDK1.6)

1. maven工程引入

<dependency>
 <groupId>com.google.zxing</groupId>
 <artifactId>core</artifactId>
 <version>2.2</version>
</dependency>
<dependency>
 <groupId>com.google.zxing</groupId>
 <artifactId>javase</artifactId>
 <version>2.2</version>
</dependency>

2. Junit Test

public class QRCodeTest {

 @Test
 @Ignore
 public void testEncode() throws Exception {
  JSONObject json = new JSONObject();
  json.put("id", "1");
  json.put("title", "qrcode");
  json.put("content", "ade, test zxing.");
  json.put("createTime", new Date());
  String content = json.toJSONString();
  
  Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
  hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
  
  BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200, hints);// 生成矩阵
  MatrixToImageWriter.writeToStream(bitMatrix, "png", new FileOutputStream("D://zxing.png"));// 输出图像
 }
 
 @Test
 public void testDecode() throws Exception {
  Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();
  hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
  
  BufferedImage image = ImageIO.read(new File("D://zxing.png"));  
        LuminanceSource source = new BufferedImageLuminanceSource(image);  
        Binarizer binarizer = new HybridBinarizer(source);  
        BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);  
        Result result = new MultiFormatReader().decode(binaryBitmap, hints);
  System.out.println(result.getText());
 }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP