之所要壓縮圖片,是由於若是圖片太大了,ZXING會解析失敗。java
另一點就是,一維碼二維碼這個圖片必須是水平放置,其餘方向極可能會致使解析失敗。google
##首先使用這個類來壓縮圖片:code
CompressPicDemo mypic = new CompressPicDemo(); //建立壓縮圖對象 //compressPic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度,是否等比縮放(默認爲true)) mypic.compressPic("c:\\原圖片路徑", "c:\\輸出圖片路徑", "原圖片.後綴", "輸出圖.後綴", 600, 600, true);
##而後使用ZXING來解碼 用到的包 core-2.0.jar javase-1.7.jar對象
//解碼 BufferedImage image = null; Result result = null; //com.google.zxing.Result image = ImageIO.read(new File(imgPath)); if (image == null) { System.out.println("the decode image may be not exit."); } LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); result = new MultiFormatReader().decode(bitmap, null); String decodeContent = result.getText(); System.out.println("解碼內容以下:" + decodeContent);