在http://code.google.com/p/zxing/downloads/list下载zxing压缩包Zxing-2.2,
使用core包
代码如下:
package cn.wuhongbox.common.javaQR; 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.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.DecodeHintType; import com.google.zxing.EncodeHintType; import com.google.zxing.LuminanceSource; import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatWriter; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.HybridBinarizer; public class QRUtil { private static final String CODE = "utf-8"; private static final int BLACK = 0xff000000; private static final int WHITE = 0xFFFFFFFF; /** * 生成RQ二维码 * * @author wuhongbo * @param str * 内容 * @param height * 高度(px) * */ public static BufferedImage getRQ(String str, Integer height) { if (height == null || height < 100) { height = 200; } try { // 文字编码 Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, CODE); BitMatrix bitMatrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, height, height, hints); return toBufferedImage(bitMatrix); // 输出方式 // 网页 // ImageIO.write(image, "png", response.getOutputStream()); // 文件 // ImageIO.write(image, "png", file); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 生成一维码(128) * * @author wuhongbo * @param str * @param width * @param height * @return */ public static BufferedImage getBarcode(String str, Integer width, Integer height) { if (width == null || width < 200) { width = 200; } if (height == null || height < 50) { height = 50; } try { // 文字编码 Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, CODE); BitMatrix bitMatrix = new MultiFormatWriter().encode(str, BarcodeFormat.CODE_128, width, height, hints); return toBufferedImage(bitMatrix); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 生成二维码,写到文件中 * * @author wuhongbo * @param str * @param height * @param file * @throws IOException */ public static void getRQWriteFile(String str, Integer height, File file) throws IOException { BufferedImage image = getRQ(str, height); ImageIO.write(image, "png", file); } /** * 生成一维码,写到文件中 * * @author wuhongbo * @param str * @param height * @param file * @throws IOException */ public static void getBarcodeWriteFile(String str, Integer width, Integer height, File file) throws IOException { BufferedImage image = getBarcode(str, width, height); ImageIO.write(image, "png", file); } /** * 转换成图片 * * @author wuhongbo * @param matrix * @return */ private static BufferedImage toBufferedImage(BitMatrix matrix) { int width = matrix.getWidth(); int height = matrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE); } } return image; } /** * 解码(二维、一维均可) */ public static String read(File file) { BufferedImage image; try { if (file == null || file.exists() == false) { throw new Exception(" File not found:" + file.getPath()); } image = ImageIO.read(file); LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result; // 解码设置编码方式为:utf-8, Hashtable hints = new Hashtable(); hints.put(DecodeHintType.CHARACTER_SET, "utf-8"); result = new MultiFormatReader().decode(bitmap, hints); return result.getText(); } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) throws Exception { File file = new File("c://1.png"); // RQUtil.getRQwriteFile("吴宏波中华人民共和国", 200, file); // code39 大写字母、数字、-、 // code128 QRUtil.getBarcodeWriteFile("12345678900-J_j", null,null, file); System.out.println("-----成生成功----"); System.out.println(); String s = QRUtil.read(file); System.out.println("-----解析成功----"); System.out.println(s); } }
相关推荐
ZXing,意为“条形码扫描”,是一个强大的工具,支持多种一维码和二维码的生成和解码。其核心功能包括编码(生成二维码或条形码图像)和解码(识别图像中的条形码)。ZXing提供了多种语言的API,包括Java,便于...
ZXing,通常被称为“条形码扫描器”,是一个开源项目,提供多种格式的一维和二维条码的读取和编写能力。ZXing 2.2版本是一个相对旧但仍然广泛使用的版本,它支持包括QR码在内的多种编码格式。在Java环境中,你可以...
ZXing,全称为“Zebra Crossing”,是一款开源的、用于读取和生成多种一维码和二维码的Java库。在给定的“zxing2.2 二维码的生成解析(java)”主题中,我们将深入探讨ZXing库如何在Java环境中帮助开发者处理二维码的...
ZXing(Zebra Crossing)是一个开源的、多平台的一维和二维条码读取库,支持多种编码格式,包括常见的QR码和条形码。在C++开发中,使用ZXing库可以方便地集成二维码的生成和识别功能。本资源提供了ZXing库的32位和64...
它支持多种条形码和二维码格式,包括QR Code,这对于生成微信二维码非常有用。QR Code能够存储大量的文本信息,如网址、联系人信息、短信等,适用于各种场景。 首先,我们来看`QrCodeCreateUtil.java`这个文件。这...
在本项目中,开发者已经对ZXing 2.2版本进行了封装,简化了使用流程,使得在Java项目中生成和解析二维码变得更加方便。 首先,我们要理解ZXing库的核心功能。ZXing提供了多种类和方法,用于二维码的生成和解码。在...
一维码,通常指条形码,是一种将宽度不等的黑白条纹和空白组合,用来表示数据的图形符号系统。一维码最早由乔治·斯蒂芬森于1949年提出,经过几十年的发展,现在最常见的一维码类型有EAN(欧洲物品编号)和UPC(统一...
ZXing(Zebra Crossing)是Google开发的一个开源项目,它提供了多种格式的一维码和二维码的读取与生成功能。在这个场景中,我们将讨论如何使用ZXing库生成二维码,并且如何将生成的二维码图片进行Base64编码。 首先...
ZXing(Zebra Crossing)是一个开源的、多平台的条码读取库,支持多种一维码和二维码的解析与生成。本项目专注于利用ZXing进行一维码和二维码的解析,将扫描到的编码内容转化为易于理解的字符串形式。 ### 1. ZXing...
Zxing,全称为“ZXing,Zebra Crossing”,是一个开源的、多功能的条形码和二维码处理库。这个库能够生成、读取多种格式的一维码和二维码,包括但不限于QR码、Code 128、EAN-13等。在Android开发中,Zxing常被用于...
ZXing,全称“Zebra Crossing”,是一个强大的、开源的图像处理库,用于读取和生成多种1D(一维)和2D(二维)条码。这个库最初是用Java编写的,但通过.NET平台的跨语言兼容性,C#开发者也能利用ZXing的强大功能。 ...
在Android开发中,Zxing(ZXing,发音同"zebra crossing",斑马线)是一个开源项目,它提供了一套全面的二维码和一维条形码读取库。这个项目由Google贡献并维护,旨在简化移动设备上的条码扫描过程。在本项目中,...
二维码,全称是“Quick Response Code”,即快速响应码,是一种二维条形码技术,能够存储大量的信息,如文本、网址、联系信息等,并且可以通过手机等设备快速读取。ZXing,又称“Zebra Crossing”,是一个开源的、跨...
它支持多种二维码和条形码格式的生成和扫描,包括QR Code、Code 128、UPC-A等。ZXing提供了Java、Android以及其他语言的版本,方便开发者集成到不同的项目中。 **生成带logo的彩色二维码** 1. **二维码编码**: 首先...
ZXing支持多种条码格式,包括一维条码(如EAN-13,UPC-A)和二维条码(如QR码,Data Matrix)。在本案例中,我们主要关注的是ZXing在生成和解析二维码方面的应用。 **1. 二维码生成** 生成二维码是ZXing库的核心...
总的来说,ZXing是一个强大的条码和二维码处理工具,通过`core-2.2.jar`和`javase-2.2.jar`这两个JAR文件,开发者可以轻松地在Java环境中实现条码和二维码的生成与读取,极大地提升了应用程序的功能性和用户体验。...
ZXing(Zebra Crossing),又称“条形码解码库”,是一个开源项目,提供了多种格式的一维和二维条码读取功能,包括二维码。本篇文章将深入探讨如何使用ZXing来识别一幅包含多个二维码的图片。 首先,我们需要理解...
本篇文章将详细讲解如何在Android应用中实现二维码和一维码(条形码)的生成、扫描以及解析。 首先,我们要理解二维码和一维码的基本概念。二维码是一种二维条形码,可以存储更多的信息,如网址、文本、联系人信息...
ZXing库被广泛应用于各种项目中,包括移动应用、服务器端脚本以及桌面应用等,用于处理一维条形码(如EAN、UPC)和二维条形码(如QR Code、Data Matrix)。ZXing2.2是该库的一个特定版本,针对Java环境进行了优化,...
Python ZXing 库是将Java版ZXing(Zone Xing)库与Python结合的一个项目,主要功能在于处理图像中的条形码和二维码识别。ZXing,又称为“条形码扫描器”,是一个开源的、多平台的二维码和一维条形码读取库。在Python中...