`

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

阅读更多

  Google开源项目ZXing的网方网址:http://code.google.com/p/zxing/

  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上面提供的一个关于条码编解码的开源项目。

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

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

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

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

Encoder.java

package com.bijian.study;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Hashtable;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;

public class Encoder {

	public static void main(String[] args) throws IOException {

		String contents = "今天,我们来简单聊聊google开源项目——ZXing(二维条码编解码)";
		Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
		hints.put(EncodeHintType.CHARACTER_SET, "GBK");
		BitMatrix matrix = null;
		try {
			matrix = new MultiFormatWriter().encode(contents,BarcodeFormat.QR_CODE, 300, 300, hints);
		} catch (WriterException e) {
			e.printStackTrace();
		}
		File file = new File("D://qrcodeImage.png");
		OutputStream out = new FileOutputStream(file);
		MatrixToImageWriter.writeToStream(matrix, "png", out);
	}
}

Decoder.java

package com.bijian.study;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

public class Decoder {

	public static void main(String[] args) {

		File file = new File("D://qrcodeImage.png");
		BufferedImage bufferedImage = null;
		try {
			bufferedImage = ImageIO.read(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
		LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
		BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
		Hashtable<DecodeHintType, String> hints = new Hashtable<DecodeHintType, String>();
		hints.put(DecodeHintType.CHARACTER_SET, "GBK");
		Result result = null;
		try {
			result = new MultiFormatReader().decode(bitmap, hints);
		} catch (NotFoundException e) {
			e.printStackTrace();
		}
		System.out.println(result.toString());
	}
}

        之后你就可以开始进行条码编辑和识别了,这里是支持中文的。

        执行Encoder中的main方法,即在D盘下生成了qrcodeImage.png文件,打开文件,如下所示:


  可以用微信的“扫一扫”扫此二维码,获取内容“今天,我们来简单聊聊google开源项目——ZXing(二维条码编解码)”。

  接下来,再执行Decoder的main方法,运行输出内容“今天,我们来简单聊聊google开源项目——ZXing(二维条码编解码)”。

 

文章来源:http://yuncode.net/article/a_5218901e0f1e870

  • 大小: 32.7 KB
分享到:
评论

相关推荐

    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中...

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

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

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

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

    OpenCvSharp+ZXing条形码识别

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

    基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    Zxing,又称为“开源的跨平台条码图像处理库”,可以处理一维和二维条码,包括但不限于EAN-13、UPC-A、Code 39、Code 128、QR Code、Data Matrix等。它包含了一个Java库,用于解析条码图像,并提供了命令行工具以及...

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

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

    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...

    使用zxing识别一幅包含多个二维码的图片

    ZXing(Zebra Crossing),又称“条形码解码库”,是一个开源项目,提供了多种格式的一维和二维条码读取功能,包括二维码。本篇文章将深入探讨如何使用ZXing来识别一幅包含多个二维码的图片。 首先,我们需要理解...

    OpencvShare+ZXing/ZBar条形码识别

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

Global site tag (gtag.js) - Google Analytics