import java.awt.image.BufferedImage; import java.io.File; import java.util.Hashtable; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.DecodeHintType; import com.google.zxing.EncodeHintType; import com.google.zxing.LuminanceSource; import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatWriter; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.HybridBinarizer; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class QRGenernate { public void Encode(String contents, int width, int height, String imgPath) { Hashtable<Object, Object> hints = new Hashtable<Object, Object>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); hints.put(EncodeHintType.CHARACTER_SET, "GBK"); try { BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height, hints); MatrixToImageWriter .writeToFile(bitMatrix, "png", new File(imgPath)); } catch (Exception e) { e.printStackTrace(); } } public String Decode(String imgPath) { BufferedImage image = null; Result result = null; try { 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)); Hashtable<Object, Object> hints = new Hashtable<Object, Object>(); hints.put(DecodeHintType.CHARACTER_SET, "GBK"); result = new MultiFormatReader().decode(bitmap, hints); return result.getText(); } catch (Exception e) { e.printStackTrace(); } return null; } public enum WifiCipherType { WIFICIPHER_WEP, WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID } public static void main(String args[]) { //fileName String imgPath = "result.png"; String contents = "测试abc"; int width = 300, height = 300; QRGenernate handler = new QRGenernate(); //create pic handler.Encode(contents, width, height, imgPath); System.out.println("SUCCESS to generate QRcode"); //analysis pic,get data String result = handler.Decode("result.png"); System.out.println(result); } }
最近下载更多
訾政阳2 LV1
6月13日
zxh2023 LV1
2023年6月3日
haoyunbin LV1
2023年3月15日
wyx065747 LV67
2021年7月9日
八爪鱼123 LV1
2020年5月22日
CxlyboSoft LV6
2020年2月27日
未曾想到命运如此坎坷 LV2
2020年2月23日
广西吴彦祖 LV6
2020年1月13日
myzczx LV25
2020年1月3日
15838634741 LV18
2019年11月30日
最近浏览更多
dapeng0011 LV15
7月17日
訾政阳2 LV1
6月13日
訾政阳 LV1
6月13日
微信网友_6625333836959744
2023年8月28日
暂无贡献等级
dzlwindy LV8
2023年7月11日
zxh2023 LV1
2023年6月3日
haoyunbin LV1
2023年3月15日
yydsod LV1
2022年6月5日
Dominick LV14
2022年5月25日
1306878374 LV13
2022年2月18日