首页 技术 正文
技术 2022年11月21日
0 收藏 844 点赞 4,275 浏览 3872 个字

1 下载zxing2.1

2 本代码配置环境:eclipse、java1.6、windows8、zxing2.1

3 解压后将文件夹里面core/src下面的com文件夹导入到eclipse工程(工程可以自己建,如QrCode)中,图示如下:

windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

注意:在源码中需要修改其编码配置为UTF-8,否则后面解码后面的文件中中文会乱码,修改图示如下:

windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

4 TestEnDeCode.java源代码

?

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 package test;     import java.awt.image.BufferedImage;       import java.io.File;       import java.io.IOException;       import java.util.Hashtable;       import java.util.Scanner;     import javax.imageio.ImageIO;       import com.google.zxing.BarcodeFormat;       import com.google.zxing.BinaryBitmap;       import com.google.zxing.DecodeHintType;       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.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();               Scanner in = new Scanner(System.in);             System.out.println("编码内容:");             String str = in.next(); //            String str = "http://www.baidu.com";             String path = "D:/Qr_pics/test7.png";             t.encode(str, path);               t.decode(path);           }                  /*          * 编码:          * 1 将内容转换成二维矩阵          * 2 将该二维矩阵转换成图片          * */        public void encode(String str, String path) {               try {   //                String str = "http://www.baidu.com百度看看";// 二维码内容   //                String path = "D:/Qr_pics/test7.png"; //二维码图片生成 路径及名称                 BitMatrix byteMatrix;                   byteMatrix = new MultiFormatWriter().encode(new String(str.getBytes("UTF-8"),"UTF-8"), BarcodeFormat.QR_CODE, 800, 800); //将文字转换成二维矩阵,并设置矩阵大小,这里的矩阵大小就是后面生成的图片像素大小                  File file = new File(path);//新建矩阵文件                   MatrixToImageWriter.writeToFile(byteMatrix, "gif", file);//将矩阵文件转换成图片文件               } catch (Exception e) {                   e.printStackTrace();               }           }                  /*          * 解码:          * 1 将图片反解码为二维矩阵          * 2 将该二维矩阵解码为内容          * */        public void decode(String imgPath) {               try {                   Reader reader = new MultiFormatReader();   //                String imgPath = "D:/Qr_pics/test7.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("\n解码结果:\n"+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());             }           }              }

5 运行结果:

windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,983
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,500
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,344
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,127
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,762
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,838