利用zxing开源工具生成二维码图片
来源:互联网 发布:maven 下载源码 编辑:程序博客网 时间:2024/05/29 03:50
ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,该工具可实现的条形码编码和解码。
如下是利用ZXing工具生成与解析二维码图片的具体例子
一 :须要的jar包
1. zxing-core.jar 生成二维码的开源工具包。
2. zxing-javase.jar 解析二维码图片时候BufferedImageLuminanceSource类所在的jar包。
二 :代码事例
package com.hyf.qrcode;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Hashtable;import java.util.Map;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.ReaderException;import com.google.zxing.Result;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zxing.common.BitMatrix;import com.google.zxing.common.HybridBinarizer;/** * 利用zxing开源工具生成二维码QRCode * * @date 2012-10-26 * @author xhw * */public class QRCodeTest { private static final int BLACK = 0xff000000; private static final int WHITE = 0xFFFFFFFF; /** * @param args */ public static void main(String[] args) { QRCodeTest test = new QRCodeTest(); String filePostfix="png";//二维码图片格式 File file = new File("F://test_QR_CODE."+filePostfix);//二维码图片存放路径 //生成二维码图片 test.encode("二维码内容", file,filePostfix, BarcodeFormat.QR_CODE, 5000, 5000); //读取二维码图片内容 test.decode(file); } /** * 生成QRCode二维码<br> * 在编码时需要将com.google.zxing.qrcode.encoder.Encoder.java中的<br> * static final String DEFAULT_BYTE_MODE_ENCODING = "ISO8859-1";<br> * 修改为UTF-8,否则中文编译后解析不了<br> * @param contents 二维码的内容 * @param file 二维码保存的路径,如:C://test_QR_CODE.png * @param filePostfix 生成二维码图片的格式:png,jpeg,gif等格式 * @param format qrcode码的生成格式 * @param width 图片宽度 * @param height 图片高度 * @param hints */ public void encode(String contents, File file,String filePostfix, BarcodeFormat format, int width, int height) { try { Map<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); //设置编码格式 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //生成一个矩阵 BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, format, width, height, hints); //生成二维码图片 writeToFile(bitMatrix, filePostfix, file); } catch (Exception e) { e.printStackTrace(); } } /** * 生成二维码图片<br> * * @param matrix * @param format * 图片格式 * @param file * 生成二维码图片位置 * @throws IOException */ public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException { //生成图片 BufferedImage image = toBufferedImage(matrix); //输出图片 ImageIO.write(image, format, file); } /** * 生成二维码内容<br> * * @param matrix * @return */ public static BufferedImage toBufferedImage(BitMatrix matrix) { int width = matrix.getWidth(); int height = matrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, matrix.get(x, y) == true ? BLACK : WHITE); } } return image; } /** * 解析QRCode二维码 */ @SuppressWarnings("unchecked") public void decode(File file) { try { 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; @SuppressWarnings("rawtypes") Hashtable hints = new Hashtable(); //解码设置编码方式为:utf-8 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) { System.out.println(ex.toString()); } }}
1 0
- 利用zxing开源工具生成二维码图片
- java利用zxing开源工具生成二维码QRCode
- 利用ZXing生成二维码的工具类
- 利用ZXing生成二维码的工具类
- 利用ZXing生成二维码的工具类
- Android平台利用ZXING生成二维码图片
- Android平台利用ZXING生成二维码图片
- Android平台利用ZXING生成二维码图片
- Android平台利用ZXING生成二维码图片
- Android平台利用ZXING生成二维码图片
- 利用ZXing生成二维码
- 利用Zxing生成二维码
- **利用Zxing生成二维码
- zxing生成二维码图片
- Google开源项目二维码读取与生成工具ZXing
- Google开源项目二维码读取与生成工具ZXing
- Google开源项目二维码读取与生成工具ZXing
- Google开源项目二维码读取与生成工具ZXing
- 又走了一年
- Mesos&PaaS系列文章之二——Master节点安装
- 关于csdn博客无法发布的问题
- 超级表格全新界面全新体验
- 九度OJ 1176:树查找 (完全二叉树)
- 利用zxing开源工具生成二维码图片
- Android 中的 Service 全面总结
- 【记录】Android html调用Java代码
- Leetcode_1singleNember
- 基于WEB的自行车租赁管理系统设计与实现
- Android 表格布局的RadioButton
- UVa 10198 - Counting
- Interface 和 Abstract class
- android settext刷新其他控件