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

1 下载zxing2.1

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

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

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

4 TestEnDeCode.java源代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

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 运行结果:

时间: 2024-10-09 06:58:51

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

使用zxing生成和解析二维码

二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的: 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理: 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息: 二维码相对于条形码的优势就是省空间: zxing简介: zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库

asp.net.web如何简单生成和保存二维码图片的例子

首先,要有生成二维码图片,需要二维码生成的类库,到官网下载thoughtWorks.QRCode.dll 例子的步骤: 1.创建项目QRCodeTest1,选择asp.net.web窗体应用程序 2.添加引用,引入支持生成二维码图片类库,thoughtWorks.QRCode.dll 3.右键项目QRCodeTest1,选择添加web窗体,生成WebForm1.aspx, 并添加新文件夹photos,存放生成的二维码图片 4.打开webForm1.aspx,可以选择两种方式编写页面(熟悉的话,用

java生成和解析二维码

前言 现在,二维码的应用已经非常广泛,在线生成器也是诸多,随手生成. 所以就和大家分享一个小案例,用zxing来做一个的二维码生成器,当然这个例子是比较简单,若是写的不好请多多包涵. ZXING项目是谷歌推出的用来识别多种格式条形码的开源项目,项目地址为https://github.com/zxing/zxing. 1.加载zxing依赖 用idea新建个maven项目,pom.xml添加对应的依赖 <dependency> <groupId>com.google.zxing<

Java生成名片式的二维码源码分享

世界上25%的人都有拖延症——但我觉得这统计肯定少了,至少我就是一名拖延症患者.一直想把“Java生成名片式(带有背景图片.用户网络头像.用户昵称)的二维码”这篇博客分享出来,但一直拖啊拖,拖到现在,真应了苏格兰的那句谚语——“什么时候都能做的事,往往什么时候都不会去做.” 零.效果图 左上角为微信头像. 沉默王二是文字昵称. 附带URL为http://blog.csdn.net/qing_gee的二维码 还有指定的背景图. 使用场景: 点公众号的微信菜单“我的二维码”,然后展示一张名片式的二维

java利用zxing生成仿新浪微博二维码

原文:java利用zxing生成仿新浪微博二维码 源代码下载地址:http://www.zuidaima.com/share/1550463729896448.htm 效果图: 说明在readme.txt文件

winform生成条形码和二维码(ZXing.Net)

首先在项目添加ZXing.Net. 工具-->Nuget包管理器-->Nuget程序包  在所搜栏输入 ZXing.Net 如下图: 添加完成后会看见: 效果图: 所有代码: /// <summary> /// 条形码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> priva

C#使用zxing,zbar,thoughtworkQRcode解析二维码,附源代码

最近做项目需要解析二维码图片,找了一大圈,发现没有人去整理下开源的几个库案例,花了点时间 做了zxing,zbar和thoughtworkqrcode解析二维码案例,希望大家有帮助. zxing是谷歌开源的二维码库,zbar,thoughtworkQRcode也是开源的,三者之间比较各有优劣 下面通过一个案例demo源码,来认识学习下这三者的实际解码效果, 第一次上传demo源码,献丑了 zbar解析关键代码: Image primaryImage = Image.FromFile(fileNa

C# 生成和解析二维码

下面是C#和JAVA两个版本的开放源码下载: C#:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library JAVA:https://github.com/zxing/zxing 本人只测试过了C#版本的,下面是测试过程中遇到的问题以及解决办法: 1.第一次运行报错信息如下: 错误     “ThoughtWorks.QRCode.Properties.Resources”并不包含“GetResource”的定义

生成条形码和二维码并实现打印的功能

生成条形码和二维码并实现打印的功能     开篇:平台下编解条形码和二维码的工具. 下载地址:http://pan.baidu.com/s/1kTr3Vuf Step1:使用VS2010新建一个窗体程序项目: Step2:添加三个类:分别是BarCodeClass.cs.DocementBase.cs.imageDocument.cs.(下一步贴出这些类的代码);;;;添加下载回来的引用zxing.dll. >说明: <1>   BarCodeClass.cs主要用来实现条形码和二维码的