首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

条码/二维码之开源利器ZXing图文介绍(转)

2012-09-04 
条形码/二维码之开源利器ZXing图文介绍(转)摘选:http://sjsky.iteye.com/blog/1142177?全文目录:基本介绍

条形码/二维码之开源利器ZXing图文介绍(转)

摘选:http://sjsky.iteye.com/blog/1142177

?

全文目录:

基本介绍二维码(比如:QRCode)的编码和解码演示条形码(比如:EAN-13)的编码和解码演示

【一】、基本介绍:

?1-1. ZXing是一个开源Java类库用于解析多种格式的条形码和二维码.

官网:http://code.google.com/p/zxing/

截止目前为止最新版本为1.7,提供以下编码格式的支持:

UPC-A and UPC-E EAN-8 and EAN-13 Code 39 Code 93 Code 128 QR Code ITF Codabar RSS-14 (all variants) Data Matrix PDF 417 ('alpha' quality) Aztec ('alpha' quality)

同时官网提供了 Android、cpp、C#、iPhone、j2me、j2se、jruby、objc、rim、symbian等多种应用的类库,具体详情可以参考下载的源码包中。

?

1-2. 本文和之前的那篇文章一样,主要是在PC上实现条形码(EAN-13)和二维码(QRCode)的编码和解码的示例,以供大家参考,用到了源码中core和javase下面的相关源代码,附件提供自己编译之后的lib包:

zxing.jarzxing-j2se.jar

有关各种手机系统的应用,有兴趣的朋友可以下载官方源码包,包下有具体详细的应用介绍。

【二】、二维码(QRCode)的编码和解码演示:

?

?2-1. 编码示例:


    ?和前篇介绍一样,用手机的二维码扫描软件(本人用的:android 快拍二维码)来测试下,识别成功的截图如下:


    条码/二维码之开源利器ZXing图文介绍(转)

    ?

    2-2. 解码示例:

        ?

        运行后生成的条形码图片如下:


        ?????????????????????????????????????????? 条码/二维码之开源利器ZXing图文介绍(转)

        用手机的扫描软件,识别成功的截图如下:


        条码/二维码之开源利器ZXing图文介绍(转)

        3-2. 解码示例:

          package?michael.zxing;????import?java.awt.image.BufferedImage;??import?java.io.File;????import?javax.imageio.ImageIO;????import?com.google.zxing.BinaryBitmap;??import?com.google.zxing.LuminanceSource;??import?com.google.zxing.MultiFormatReader;??import?com.google.zxing.Result;??import?com.google.zxing.client.j2se.BufferedImageLuminanceSource;??import?com.google.zxing.common.HybridBinarizer;????/**??*?@blog?http://sjsky.iteye.com??*?@author?Michael??*/??public?class?ZxingEAN13DecoderHandler?{????????/**??????*?@param?imgPath??????*?@return?String??????*/??????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));????????????????result?=?new?MultiFormatReader().decode(bitmap,?null);??????????????return?result.getText();??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}??????????return?null;??????}????????/**??????*?@param?args??????*/??????public?static?void?main(String[]?args)?{??????????String?imgPath?=?"d:/test/twocode/zxing_EAN13.png";??????????ZxingEAN13DecoderHandler?handler?=?new?ZxingEAN13DecoderHandler();??????????String?decodeContent?=?handler.decode(imgPath);??????????System.out.println("解码内容如下:");??????????System.out.println(decodeContent);??????????System.out.println("Michael?,you?have?finished?zxing?EAN-13?decode.");????????}??}??

        ?运行结果如下:

        写道解码内容如下:
        6923450657713
        Michael ,you have finished zxing decode.

        ?

        从测试结果可见:解码出的内容和之前编码的内容是一致。

热点排行