package com.chekn.test.qrcode;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
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.NotFoundException;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
public class QrCodeImageCopy {
private static final String outFilePath="D:\\Users\\cks\\Desktop\\TRANSFILE\\QR_CODE\\";
private static final int width=300;
private static final int height=300;
private static final int blackRGB=0xFF000000;
private static final int whiteRGB=0xFFFFFFFF;
private boolean writeQrCodeImage(String code, String fileName) throws WriterException, IOException{
//编码配置
Map<EncodeHintType,String> map=new HashMap<EncodeHintType,String>();
map.put(EncodeHintType.CHARACTER_SET, "utf-8");
//文本数据转换成图像矩阵数据
BitMatrix bitMatrix=new MultiFormatWriter().encode(code, BarcodeFormat.QR_CODE, width, height,map);
//输出
System.out.println("width->"+bitMatrix.getWidth()+" height->"+bitMatrix.getHeight());
File file=new File(outFilePath+fileName+".png");
BufferedImage bufImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
for(int x=0;x<width;x++){
for(int y=0;y<height;y++){
bufImage.setRGB(x, y, bitMatrix.get(x, y)?blackRGB:whiteRGB);
}
}
return ImageIO.write(bufImage, "png", file);
}
private String readQrCodeImage(File file) throws IOException, NotFoundException{
//读图
BufferedImage bufImage=ImageIO.read(file);
//转成位图
LuminanceSource source=new BufferedImageLuminanceSource(bufImage);
BinaryBitmap bitmap=new BinaryBitmap(new HybridBinarizer(source));
//解码配置
Map<DecodeHintType,String> map=new HashMap<DecodeHintType,String>();
map.put(DecodeHintType.CHARACTER_SET, "utf-8");
String parseCode= new MultiFormatReader().decode(bitmap,map).getText();
return parseCode;
}
public static void main(String[] args){
QrCodeImageCopy qci=new QrCodeImageCopy();
try {
System.out.println(Color.GREEN.getRGB()+" black: "+blackRGB+" white: "+whiteRGB);
for(int i=0;i<5;i++){
String uuidStr=UUID.randomUUID().toString();
qci.writeQrCodeImage(uuidStr, Integer.toString(i));
String parseStr=qci.readQrCodeImage(new File(outFilePath+i+".png"));
System.out.println(i+": uuidStr->"+uuidStr+", parseStr->"+parseStr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 浏览: 54075 次
- 性别:
- 来自: 北京
相关推荐
在标题“利用ZXING生成简易二维码”中,提到的核心知识点是使用ZXing库来创建二维码。ZXing库提供了Java、Android以及命令行工具等多种方式来操作二维码。生成二维码的基本步骤包括: 1. **配置ZXing**: 首先,你...
一个在 .NET Framework 环境下实现的二维码生成与识别的小程序。 本人综合比较了已有的第三方库,最终选择了 ZXing.Net 。ZXing.Net 是开源项目 https://github.com/zxing/zxing 在 .NET 平台上的实现;虽然 NuGet ...
Google开源的ZXing(Zebra Crossing)库为开发者提供了跨平台的二维码和条形码生成与解码能力。本项目以ZXing为基础,结合自定义功能,如生成带有Logo的彩色二维码,为开发人员提供了更丰富的应用场景。 ZXing(又...
这个“zxing3.3.1二维码生成”是一个针对二维码生成功能的特定版本,版本号为3.3.1。这个jar包包含了ZXing库的所有功能,便于开发者在项目中集成二维码生成的功能。 ZXing库支持多种类型的条码和二维码,包括但不...
Android利用zxing生成二维码,识别二维码超详细、超简易demo,解压后用Android studio可直接打开,附教程:https://blog.csdn.net/mountain_hua/article/details/80646089
看着网上好看的二维码,也想着自己实现一个,经过3周的理论加开发时间,终于实现,详细介绍请看 https://blog.csdn.net/u011837804/article/details/129229973,本源码基于zxing组件扩展实现了草料二维码99%的功能。...
(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用...
1. **二维码编码**: 首先,我们需要了解如何使用ZXing生成普通的黑白二维码。ZXing的`com.google.zxing.client.j2se.MatrixToImageWriter`类可以将数据编码为矩阵,并转换为位图图像。通过调用`MatrixToImageConfig`...
在移动设备上,ZXing通常用于生成和扫描二维码,为移动应用添加数据交换和链接启动功能。 "zxing-master"是ZXing项目的源代码仓库,包含完整的开发源码,可以供开发者进行二次开发或自定义配置。这个压缩包文件提供...
安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发...
引入必要的命名空间后,就可以使用ZXing提供的类和方法来生成条形码和二维码。 3. **生成二维码/条形码**: - **二维码生成**:可以使用`Writer`接口,如`BarcodeWriter`,并设置所需的编码类型(如QRCode),然后...
ZXing java 生成 二维码,ZXing-core-2.3.0.jar
这是Zxing的源码,没有打包成jar利于学习使用。...使用时注意path的默认地址,Main类中是生成二维码的代码,GetMain类中是读取二维码的代码。 eclipse中Ctrl+Shift+R快速查找类 希望对你有所帮助。
在本文中,我们将深入探讨ZXing 3.3.0版本,包括其核心功能、如何进行二维码扫描以及如何生成二维码。 一、ZXing 3.3.0核心功能 ZXing 3.3.0是ZXing库的一个稳定版本,提供了以下主要功能: 1. **二维码和条形码...
在给定的压缩包文件中,我们可以看到几个关键的目录,包括`view`、`encoding`、`camera`、`activity`和`decoding`,这些都是ZXing库的核心组成部分,用于实现二维码的生成和扫描功能。 1. **`view`**: 这个目录包含...
8. **用户界面**:虽然STM32本身没有图形界面,但可以通过串口、SPI或I2C接口连接外部显示器,实现简单的二维码结果展示。 9. **文档编写**:编写详细的用户手册和开发者指南,帮助其他开发者理解和复用此项目。 ...
这个简单的Demo展示了如何使用ZXing.Net库在C#中生成包含中文的二维码。通过这种方式,你可以轻松地将中文文本编码到二维码中,便于在移动设备上扫描读取。在实际项目中,可以根据需求进行扩展,如添加自定义的样式...
这些库使用简单,只需要提供需要编码的数据和一些可选参数(如尺寸、颜色等),即可生成一个二维码图片。例如,`qrcode-generator`库可以这样使用: ```javascript var qr = qrcode(0, 'L'); qr.addData('...
zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁,可选择导入as的modules 只需要在bulid.gradle(app) 中的dependencies :里面 compile project(path: ':BarCode')一下就能用。
对于Android开发者,可以直接引入ZXing的Android端库,利用`IntentIntegrator`和`IntentResult`进行集成,实现扫描和生成二维码的功能。 为了更好地理解和实践这些概念,你可以查看压缩包中的`zxing-qrcode`文件,...