该方法使用ZXing解码图像:
public static String decode(BufferedImage image) {
try {
if (image == null) {
System.out.println("bufferedImage is null");
return null;
}
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result result;
@SuppressWarnings("rawtypes")
Hashtable hints = new Hashtable();
hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
result = new MultiFormatReader().decode(bitmap, hints);
String resultStr = result.getText();
//System.out.println("the qrcode str: " + resultStr);
return resultStr;
} catch (com.google.zxing.NotFoundException re) {
//System.out.println("no str in the image");
return null;
} catch(Exception e) {
System.out.println(e.toString());
return null;
}
}
并使用QRcode.jar:
public static String decodeUseQRcode(BufferedImage image){
QRCodeDecoder decoder = new QRCodeDecoder();
String content = null;
try {
content = new String(decoder.decode(new TwoDimensionCodeImage(image)),"gbk");
} catch (DecodingFailedException e) {
//e.printStackTrace();
return null;
} catch (UnsupportedEncodingException e) {
//e.printStackTrace();
return null;
}
return content;
}
图片无法通过QRCode.jar和ZXing进行解码,结果全部为“null”。查看两个java方法无法解码图片。
但我使用微信和其他应用程序可以解码这个。 如何提高成功解码图片的速度? (我没有10个声望,所以我无法发布图像。有时两种方法都有效。但并不总是有效。) 图片的链接。 http://postimg.org/image/s6tpzv1gf/