`

Google开源项目ZXing(二维条码编解码)简单使用(Java版)

    博客分类:
  • java
 
阅读更多

ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. Our focus is on using the built-in camera on mobile phones to scan and decode barcodes on the device, without communicating with a server. However the project can be used to encode and decode barcodes on desktops and servers as well. 

ZXing项目是google code上面提供的一个关于条码编解码的开源项目。

要对本项目进行二次开发,首先你需要在源码下载列表中下载ZXing1.7.zip源代码

解压文件,你会看到里面有很多文件夹,包括J2SE的,Android的,J2ME,C#等等。我们以J2SE为例。

你需要使用里面的Core和J2SE文件夹。然后导入到你在Eclipse中创建的工程,目录形式如下:


 

J2SE包中,提供了编码和解码的.Java文件,但是由于写的过于复杂,还没弄清楚这个开源项目源码之前,还是不推荐使用。(You can download jar file from my attachment)

自己在j2se包中创建两个Java文件Encoder和Decoder。代码如下:

 

[java] view plaincopy
 
  1. package com.google.zxing.client.j2se;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5. import java.util.Hashtable;  
  6.   
  7. import com.google.zxing.BarcodeFormat;  
  8. import com.google.zxing.EncodeHintType;  
  9. import com.google.zxing.MultiFormatWriter;  
  10. import com.google.zxing.WriterException;  
  11. import com.google.zxing.common.BitMatrix;  
  12.   
  13. public class Encoder {  
  14.   
  15.     public static void main(String[] args) {  
  16.   
  17.         String contents = "今天,我们来简单聊聊google开源项目——ZXing(二维条码编解码)";  
  18.   
  19.         Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();  
  20.   
  21.         hints.put(EncodeHintType.CHARACTER_SET, "GBK");  
  22.   
  23.         BitMatrix matrix = null;  
  24.   
  25.         try {  
  26.   
  27.             matrix = new MultiFormatWriter().encode(contents,  
  28.                     BarcodeFormat.QR_CODE, 300300, hints);  
  29.   
  30.         } catch (WriterException e) {  
  31.   
  32.             e.printStackTrace();  
  33.   
  34.         }  
  35.   
  36.         File file = new File("D://qrcodeImage.png");  
  37.   
  38.         try {  
  39.   
  40.             MatrixToImageWriter.writeToFile(matrix, "png", file);  
  41.   
  42.         } catch (IOException e) {  
  43.   
  44.             e.printStackTrace();  
  45.   
  46.         }  
  47.   
  48.     }  
  49. }  

 

[java] view plaincopy
 
  1. package com.google.zxing.client.j2se;  
  2.   
  3. import java.awt.image.BufferedImage;  
  4. import java.io.File;  
  5. import java.io.IOException;  
  6. import java.util.Hashtable;  
  7.   
  8. import javax.imageio.ImageIO;  
  9.   
  10. import com.google.zxing.BinaryBitmap;  
  11. import com.google.zxing.DecodeHintType;  
  12. import com.google.zxing.LuminanceSource;  
  13. import com.google.zxing.MultiFormatReader;  
  14. import com.google.zxing.NotFoundException;  
  15. import com.google.zxing.Result;  
  16. import com.google.zxing.common.HybridBinarizer;  
  17.   
  18. public class Decoder {  
  19.       
  20.     public static void main(String[] args) {  
  21.   
  22.         File file = new File("D://qrcodeImage.png");  
  23.   
  24.         BufferedImage bufferedImage = null;  
  25.   
  26.         try {  
  27.   
  28.             bufferedImage = ImageIO.read(file);  
  29.   
  30.         } catch (IOException e) {  
  31.   
  32.             e.printStackTrace();  
  33.   
  34.         }  
  35.   
  36.         LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);  
  37.   
  38.         BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));  
  39.   
  40.         Hashtable<DecodeHintType, String> hints = new Hashtable<DecodeHintType, String>();  
  41.   
  42.         hints.put(DecodeHintType.CHARACTER_SET, "GBK");  
  43.   
  44.         Result result = null;  
  45.   
  46.         try {  
  47.   
  48.             result = new MultiFormatReader().decode(bitmap, hints);  
  49.   
  50.         } catch (NotFoundException e) {  
  51.   
  52.             e.printStackTrace();  
  53.   
  54.         }  
  55.   
  56.         System.out.println(result.toString());  
  57.   
  58.     }  
  59.   
  60. }  
分享到:
评论

相关推荐

    java zxing二维码、条形码生成与解码

    Java ZXing库,全称“Zebra Crossing”,是一款开源的二维码和条形码处理库,广泛应用于各种数据编码和解码场景。它提供了强大的功能,能够轻松地在Java应用程序中生成和读取二维码和条形码。下面我们将深入探讨如何...

    com.google.zxing二维码、条形码

    1. **ZXing介绍**:ZXing,又名“条形码射手”,是一个开源的、多平台的、用于读取和生成多种一维和二维条码的库。它支持多种格式,包括但不限于QR码、Aztec码、PDF417、Code 39、EAN-13等。 2. **核心库(Core)**:...

    基于ZXing的条形码解码识别(C# Winform)

    通过研究这些文件,可以了解到实际项目中如何使用ZXing.Net库进行条形码解码的完整流程。 1. **UI设计**:项目可能包含一个窗体(Form),设置了摄像头控件或图像选择按钮,以及用于显示解码结果的文本框或标签。 ...

    Google ZXing制作的条形码、二维码的生成、扫描Demo 源码.zip

    ZXing,全称为“Zebra Crossing”,是一款开源的、跨平台的条形码和二维码读取与生成库。Google ZXing项目始于2007年,旨在为多种平台提供便捷的条码处理能力,包括Java、Android、iOS、Web等。这个压缩包中的源码是...

    zxing二维一维码扫描

    ZXing(Zebra Crossing)是一个开源的、跨平台的条码和二维码读取库,它支持多种编码格式,包括常见的QR码和一维条形码。这个“zxing二维一维码扫描”项目是一个专门为Android平台开发的应用,利用ZXing库实现二维码...

    google zxing读取、生成一维码、二维码图片

    ZXing(Zebra Crossing)是Google开发的一个开源项目,专门用于处理一维条形码和二维二维码的生成与读取。这个项目的名字来源于其英文名的首字母缩写,象征着“斑马线”,寓意在数据世界中指引信息的交汇。ZXing提供...

    二维条码编码解码源代码

    二维条码编码解码源代码是Java开发领域中与数据编码和解码技术相关的实践案例。QR Code(Quick Response Code,快速响应码)是一种广泛应用于各种场景的二维条码标准,由日本Denso Wave公司在1994年推出。它在传统一...

    Python zxing 库(条形码二维码识别)

    Python ZXing 库是将Java版ZXing(Zone Xing)库与Python结合的一个项目,主要功能在于处理图像中的条形码和二维码识别。ZXing,又称为“条形码扫描器”,是一个开源的、多平台的二维码和一维条形码读取库。在Python中...

    android 使用zxing core 进行条形码扫描

    ZXing是一个强大的、多格式的一维/二维条码图像处理库,支持多种编码和解码格式,包括常见的QR码和条形码。它的核心库ZXing Core提供了跨平台的解码功能,可以被集成到Android、iOS以及其他Java应用程序中。 以下是...

    ZXing.NET C#使用ZXing识别二维码,条形码

    ZXing.NET,全称为“Zebra Crossing for .NET”,是一个基于C#的开源库,用于读取和写入多种一维和二维条码,包括二维码(QR Code)和常见的条形码格式,如EAN、UPC、Code 128等。这个库是ZXing(Java版本)的.NET...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    ZXing(又称为“ZXing库”或“二维码扫描器”)是一个开源Java库,它支持多种一维条形码和二维条码格式,包括但不限于QRCode、DataMatrix、UPC-A、EAN-13等。该库不仅提供Java版本,还支持Android和iOS平台,使得...

    OpenCvSharp+ZXing条形码识别

    2. 条形码解码: 定位到条形码后,使用ZXing库进行解码。ZXing提供了一个`MultiFormatReader`类,它可以自动检测并解码多种条形码格式。 ```csharp using ZXing; using ZXing.Common; Bitmap barcodeImage = ...

    ZXing-1.5.zip 条形码 二维 一维

    ZXing支持多种格式的一维和二维条码,包括但不限于UPC-A、EAN-13、Code 128、QR Code、Data Matrix等。在ZXing-1.5版本中,它提供了一系列的功能和优化,以提升条码扫描的准确性和速度。 一、条形码与二维码 1. **...

    ireport生成一维码和google zxing二维码

    二维码是一种二维条形码,能存储更多的信息,包括文字、网址、联系信息等。在iReport中生成二维码,我们需要引入ZXing库,这是一个开源的二维码生成和读取库。 1. 引入库:ZXing的javase.jar和core-3.0.0.jar需要...

    android zxing条码扫描源码

    Zxing是一个开放源码的多格式一维和二维条码图像处理库,支持多种条码类型,如QR码、Code 128、EAN-13等。它提供了从图像中检测和解码条码的能力,同时具备生成条码图片的功能。Zxing不仅适用于Android,还支持Java...

    OpencvShare+ZXing/ZBar条形码识别

    **ZXing (ZBar)**: ZXing是一个开源的、跨平台的条形码解码库,支持多种类型的条形码,包括一维的EAN、UPC,二维的QR Code、Data Matrix等。ZBar不仅能够识别单个条形码,还具备同时识别图像中多个条形码的能力。在...

    android利用Zxing编码与解码

    Zxing,又称为Google条码阅读器,是一个跨平台的开源库,用于读取和写入多种一维和二维条码格式。在Android中,Zxing提供了`com.google.zxing.client.android`库,它包含了一个完整的条码扫描器应用程序,同时也提供...

    Zxing 条形码解码

    ### ZXing条形码解码知识点详解 #### 一、ZXing简介 ZXing(发音为 "zexing")是一款开源的条形码扫描库,支持多种编程语言,包括Java。它能够读取和生成多种格式的一维条形码和二维条形码,如QR Code、Data Matrix...

Global site tag (gtag.js) - Google Analytics