QR二维码是目前最常用二维码
是把字符串编码后通过二维图片的黑白两色模块显示出来
可表示的字符串长度和 容错率(ECC) 显示编码模式(EncodeMode)及版本(Version)有关
容错率共四档:
L 7%
M 15%
Q 25%
H 30%
编码模式:
Numeric 数字
Alphanumeric 英文字母
Binary 二进制
Kanji 汉字
版本(Version):
1-40 共40个版本
1 21x21模块
40 177x177模块
每增加一个版本每边增加4个模块 ,如: 版本2 为25x25模块
以下两张图片是字符串'www.sohu.com'的二维码使用了不同的版本的效果
版本1 版本7
每个版本不同容错率可表示长度可在这里查看http://www.qrcode.com/en/vertable1.html
通过开源Java程序生成二维码
ZXing
- /**
- * @param contents 字符串内容
- * @param width 宽度
- * @param height 高度
- * @param imgPath 图片输出路径
- */
- public void encode(String contents, int width, int height, String imgPath) {
- Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
- // 指定纠错等级
- hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
- // 指定编码格式
- hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
- try {
- BitMatrix bitMatrix = new MultiFormatWriter().encode(contents,
- BarcodeFormat.QR_CODE, width, height, hints);
- MatrixToImageWriter
- .writeToFile(bitMatrix, "png", new File(imgPath));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
我用的ZXing2.0,发现只要指定了字符集,出来的二维码图片就不能被识别,释掉这句就可以识别了,但中文会乱码。
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
SwetakeQRCode
- /**
- * @param sms_info 信息内容
- * @param filePath 输出路径
- * @param width 宽度
- * @param height 高度
- * @throws Exception
- */
- public static void createImage(String sms_info,String filePath,int width,int height) throws Exception {
- try {
- Qrcode testQrcode = new Qrcode();
- testQrcode.setQrcodeErrorCorrect('M');
- testQrcode.setQrcodeEncodeMode('B');
- testQrcode.setQrcodeVersion(7);
- String testString = sms_info;
- byte[] d = testString.getBytes("UTF-8");
- System.out.println(d.length);
- // 限制最大字节数为120
- if (d.length > 0 && d.length < 120) {
- boolean[][] s = testQrcode.calQrcode(d);
- BufferedImage bi = new BufferedImage(s.length, s[0].length,
- BufferedImage.TYPE_BYTE_BINARY);
- Graphics2D g = bi.createGraphics();
- g.setBackground(Color.WHITE);
- g.clearRect(0, 0, s.length, s[0].length);
- g.setColor(Color.BLACK);
- int mulriple=1;
- for (int i = 0; i < s.length; i++) {
- for (int j = 0; j < s.length; j++) {
- if (s[j][i]) {
- g.fillRect(j * mulriple, i * mulriple, mulriple, mulriple);
- }
- }
- }
- g.dispose();
- bi.flush();
- File f = new File(filePath);
- if (!f.exists()) {
- f.createNewFile();
- }
- bi=resize(bi,width,height);
- // 创建图片
- ImageIO.write(bi, "png", f);
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * 图像缩放
- * @param source
- * @param targetW
- * @param targetH
- * @return
- */
- private static BufferedImage resize(BufferedImage source, int targetW,
- int targetH) {
- int type = source.getType();
- BufferedImage target = null;
- double sx = (double) targetW / source.getWidth();
- double sy = (double) targetH / source.getHeight();
- target = new BufferedImage(targetW, targetH, type);
- Graphics2D g = target.createGraphics();
- g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
- g.dispose();
- return target;
- }
可以通过以下方法设置容错、编码模式、版本
setQrcodeErrorCorrect L M Q H
setQrcodeEncodeMode N数字 A英文 其他为Binary
setQrcodeVersion 不设置会自动选择适当的版本
这个库只是通过calQrcode方法返回表示二维码的数组,图像需要自己处理
boolean[][] s = testQrcode.calQrcode(d);
相关推荐
1.软件系统读取文本文件数据信息内容(数据信息由汉字、英文字母、数字),然后对数据信息进行QR二维码编码,生成QR二维码图片文件,并保存在指定文件夹下面。 2.生成的QR二维码图片为清晰的、黑白色BMP图片,保存...
总之,这份QR二维码生成源码(JAVA版)为开发者提供了一种快速集成二维码生成功能的方式,节省了从头实现的复杂工作,提高了开发效率。通过理解和应用这份源码,开发者可以更好地理解二维码生成原理,并将其运用到...
QR二维码,全称为Quick Response(快速响应)二维码,是一种二维条码技术,由日本的Denso Wave公司在1994年发明。QR二维码在日常生活、商业活动和信息技术领域都有着广泛的应用,它能存储比传统一维条码更多的信息,...
在开发过程中,需要注意兼容各种二维码扫描软件,确保它们都能正确识别和解码UTF-8编码的中文内容。 总的来说,支持中文的QR二维码利用了UTF-8编码技术,克服了早期二维码标准对非ASCII字符支持的局限性,使得中文...
QR二维码 破解软件 可制作QR二维码,可将网址、文字、书签等转换成QR二维码,也可破译出QR二维码中的内容,方便实用
QR二维码是一种广泛应用于移动设备、广告、物联网等领域的二维条形码标准,由日本Denso Wave公司于1994年开发。C++作为一种通用、面向对象的编程语言,其强大的功能和灵活性使得它成为实现二维码生成器的理想选择。...
在本实例中,我们探讨的是如何使用LabVIEW来生成和解析QR二维码,这是一种广泛应用于现代信息传递的技术。QR码,全称Quick Response Code,快速响应码,能够存储大量的数据,如网址、文本、联系信息等,并且可以通过...
QR二维码源码,可直接编译,生成二维码图形并打印在windows DOS界面
本项目是一个完整的Eclipse开发环境下的Java项目,适用于JDK1.5,主要涉及二维码的编码与解码过程。 一、二维码编码 1. 数据结构:二维码包含定位图案、定时图案、校正图案、版本信息和数据区域等组成部分。数据...
### QR二维码介绍 #### 一、概述 QR二维码(Quick Response Code),是一种可以在二维空间内存储信息的条形码类型,具有编码效率高、信息容量大、错误纠正能力强等特点。本文将详细介绍QR二维码的基本概念、编码...
用MATLAB实现了QR二维码的编码及解码,可显示二维码并读出二维码信息
ATK-QR 二维码&条形码识别库+软件源码工程+应用技术文档 1,ATK_QR 二维码&条形码识别库 2,程序源码 3,二维码识别参考资料 ATK-QR二维码&条码识别库使用说明(探索者F407版)_AN1616A.pdf ATK-QR二维码&条码识别库...
google zxing 2.1 jar 编译包QR二维码
QR二维码ISO国际标准的PDF文档,讲解了QR二维码的原理以及编码和译码的实现。
本资源提供了一个关于QR二维码解码的源代码,特别适用于Java开发环境。下面我们将深入探讨QR二维码的基本原理、解码过程以及在Java中实现的相关技术。 首先,了解QR二维码的基本结构至关重要。QR码由黑白相间的模块...
windows版QR二维码识别软件和编辑软件 压缩包中包含了两个用于windows桌面电脑的软件、QR码生成原理(三个mht网页文件),两个软件分别是智能QR二维码识别软件SmartBarcodeRecognize v4.0.0.0(Copyright (C) God. ...
QR二维码解码C++源代码,不含DLL中间件,全套源程序,原代码全中文注释。 VS2010编译环境调试通过,支持重新编译,直接可用。 可以选择输入8位或24位BMP格式QR码图像,输出(包括版本号和纠错等级的)QR码译码信息。...
QR二维码,全称为Quick Response Code,是一种二维条形码,由日本Denso Wave公司在1994年发明,主要用于快速读取信息。在信息技术领域,QR二维码被广泛应用于名片、网址链接、产品信息、电子票务等场景。LabVIEW,...
在本项目"qr_image"中,我们看到的是一个专门用于生成QR二维码图像的程序,它基于C++编程语言,并且兼容Visual Studio 2008开发环境。 该项目的核心算法是QR码编码算法。这个算法遵循特定的规则,包括模块布局、...