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