使用Zxing来对二维码生成和解析
package com.whl.qrcode;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class CreateQrCodeTest {
public static void createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat){
try{
// Create the ByteMatrix for the QR-Code that encodes the given String.
Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
// Make the BufferedImage that are to hold the QRCode
int matrixWidth = byteMatrix.getWidth();
BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB);
image.createGraphics();
Graphics2D graphics = (Graphics2D) image.getGraphics();
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, matrixWidth, matrixWidth);
// Paint and save the image using the ByteMatrix
graphics.setColor(Color.BLACK);
for (int i = 0; i < matrixWidth; i++){
for (int j = 0; j < matrixWidth; j++){
if (byteMatrix.get(i, j)){
graphics.fillRect(i, j, 1, 1);
}
}
}
ImageIO.write(image, imageFormat, outputStream);
}catch (Exception ex) {
ex.printStackTrace();
}
}
public static void readQrCode(InputStream inputStream) throws IOException{
//get the data from the input stream
BufferedImage image = ImageIO.read(inputStream);
//convert the image to a binary bitmap source
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
//decode the barcode
QRCodeReader reader = new QRCodeReader();
Result result = null ;
try {
result = reader.decode(bitmap);
} catch (ReaderException e) {
//the data is improperly formatted
e.printStackTrace();
}
System.out.println(result.getText());
}
public static void main(String[] args) throws IOException {
// createQrCode(new FileOutputStream(new File("d:\\qrcode.jpg")),"name:whl",300,"JPEG");
readQrCode(new FileInputStream(new File("d:\\qrcode.jpg")));
}
}
效果图: 附件为zxing jar文件
并且很方便的设置前景 背景颜色 及logo上传
相关推荐
二维码生成及解析内涵两个java类原码与QRCode所需的jar包。 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码...
二维码生成及解析是现代信息化应用中的重要组成部分,广泛应用于各种场景,如网页链接、电子票务、支付凭证等。在Java环境下,有多种库和工具可用于生成二维码,本示例主要涉及了`zwing`、`Qrcode`以及基于...
在IT行业中,二维码作为一种高效的信息编码方式,广泛应用于各种场景,如链接分享、电子票务、产品追溯等。本教程将深入讲解如何使用...通过这个简单的"java 二维码生成及解析demo",你将能够快速上手并掌握相关技术。
2. **二维码生成** 要生成二维码,我们需要使用`MultiFormatWriter`和`BitMatrix`类。首先,将要编码的数据转换为`BarcodeFormat`对象,然后调用`encode`方法生成`BitMatrix`对象。接着,使用`BitmapEncoder`将其...
生成二维码,并对生成的二维码进行解析。把要用的jar包下下来,导入到项目里去。qrcode需要设置一个版本号,这个版本号代表你生成的二维码的像素的大小。版本1是21*21的,版本号每增加1,边长增加4。也就是说版本7的...
这是一个基于java开发的二维码生成与解析 可以根据程序配置的参数设置生成二维码的图片大小 以及密度 这是一个基于java开发的二维码生成与解析 可以根据程序配置的参数设置生成二维码的图片大小 以及密度 这是一个...
C++作为一款强大的编程语言,可以很好地处理二维码生成和解析的任务。在描述中提到的源码修改,通常是指对已有的代码进行优化或修复错误,以提高程序的稳定性和效率。对于纠错能力的增强,可能涉及到了更高级的错误...
二维码生成和解析是现代信息化技术中的重要组成部分,尤其在移动互联网和物联网领域中广泛应用。Java作为一门跨平台的编程语言,提供了丰富的库和工具来支持二维码的生成与解析。本篇将详细介绍如何在Java环境中实现...
Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,亲测可用。 代码为2016年6月9日从GitHub下载的,版本为3.2.1 GitHub对应地址代码为: https://github.com/zxing/zxing jar包原始下载地址为:...
本资源提供了C#语言实现的二维码生成与解析的源码,帮助开发者快速集成二维码功能到自己的应用中。下面将详细阐述二维码的工作原理以及C#中实现二维码生成和解析的关键知识点。 一、二维码工作原理 二维码由黑白...
本项目是关于"基于Spring Boot的二维码生成与解析接口",将重点探讨如何在Spring Boot环境中实现二维码的生成与解码功能。 首先,二维码(Quick Response Code)是一种二维条形码,能够存储更多的数据,包括URL、...
QRCodeUtils使用文档详见博客https://blog.csdn.net/qq_24091555/article/details/81263472
二维码生成与解析是现代信息化社会中常见的技术,广泛应用于各种场景,如名片交换、网址跳转、支付等。本文将详细讲解如何通过源码实现这一功能,并探讨其中的关键知识点。 首先,我们来看`TwoDimensionCode.java`...
二维码技术在现代社会中被广泛应用,从商品条码到...以上就是关于“二维码生成与解析”的核心知识点,通过理解这些原理和代码实现,开发者可以轻松地在自己的应用程序中集成二维码功能,从而提升用户体验和服务效率。
在`ecodeTest`这个项目中,你可以找到一个已经实现二维码生成和解析功能的示例,通过运行这个项目,你可以更好地理解和学习如何在Android应用中集成二维码功能。在实际开发中,记得根据项目需求进行适当的优化和调整...
Java 实现生成二维码和解析二维码 URL 操作示例 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在实际应用中,生成二维码和解析二维码 URL 是非常常见的操作。本文将详细介绍 Java 实现生成二维码和解析...
在这一背景下,二维码生成解析工具应运而生,旨在为用户提供一个简单易用的平台,实现二维码的快速生成与内容解析。 二维码,顾名思义,是一种能够存储信息的二维图形符号。它将数据编码在由黑色模块组成的方形阵列...
Java 二维码生成与解析是Java开发中常见的功能需求,尤其在移动互联网时代,二维码被广泛应用于数据交换、链接跳转、支付凭证等场景。本文将详细介绍如何使用Google的ZXing库来实现Java环境下的二维码生成与解析。 ...