[转]zxing二维码的生成和解码 j2se
本文转自:
http://andilyliao.iteye.com/blog/1102546
适用于j2se的方法
例子:
package snippet; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; 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.Reader; import com.google.zxing.ReaderException; import com.google.zxing.Result; import com.google.zxing.WriterException; 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; public class TestEnDeCode { /** * */ public TestEnDeCode() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { TestEnDeCode t=new TestEnDeCode(); t.encode(); t.decode(); } // 编码 public void encode() { try { String str = "小猪";// 二维码内容 String path = "hwy.png"; BitMatrix byteMatrix; Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); byteMatrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, 200, 200,hints); File file = new File(path); MatrixToImageWriter.writeToFile(byteMatrix, "png", file); } catch (Exception e) { e.printStackTrace(); } } // 解码 public void decode() { try { Reader reader = new MultiFormatReader(); String imgPath = "hwy.png"; File file = new File(imgPath); BufferedImage image; try { image = ImageIO.read(file); if (image == null) { System.out.println("Could not decode image"); } LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer( source)); Result result; Hashtable hints = new Hashtable(); hints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); result = new MultiFormatReader().decode(bitmap, hints); String resultStr = result.getText(); System.out.println(resultStr); } catch (IOException ioe) { System.out.println(ioe.toString()); } catch (ReaderException re) { System.out.println(re.toString()); } } catch (Exception ex) { } } }
- zxing.jar (371 KB)
- 下载次数: 92
posted on 2012-09-21 10:55 freeliver54 阅读(2635) 评论(0) 编辑 收藏 举报