package com.test;
import java.awt.Color;
import java.awt.Graphics2D;
import
java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;
public class QRCodeEncoderTest {
public static void main(String[] args)
throws
Exception{
QRCodeEncode("TestQRCode.jpg","jpg","测试数据,字符长度不能超过123");
}
public
static void QRCodeEncode(String filename,String filetype,String input)throws
Exception
{
Qrcode qrcode = new
Qrcode();
qrcode.setQrcodeErrorCorrect('M');
qrcode.setQrcodeEncodeMode('B');
qrcode.setQrcodeVersion(7);
String testString = input;
byte[] d = testString.getBytes("GBK");
BufferedImage bi = new BufferedImage(556,
556,
BufferedImage.TYPE_INT_RGB);
// createGraphics
Graphics2D g = bi.createGraphics();
// set background
g.setBackground(Color.WHITE);
g.clearRect(0, 0, 556, 556);
g.setColor(Color.BLACK);
if (d.length > 0 && d.length < 123) {
boolean[][] b =
qrcode.calQrcode(d);
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b.length; j++) {
if (b[j][i])
{
g.fillRect(j * 12 + 2, i * 12 + 2, 12, 12);
}
}
}
}
g.dispose();
bi.flush();
String FilePath = filename;
File f = new File(FilePath);
ImageIO.write(bi,filetype,
f);
System.out.println("QRCodeEncodeSuccess!");
}
}
package com.test;
import java.awt.image.BufferedImage;
import java.io.File;
import
java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.imageio.ImageIO;
import jp.sourceforge.qrcode.QRCodeDecoder;
import
jp.sourceforge.qrcode.data.QRCodeImage;
import
jp.sourceforge.qrcode.exception.DecodingFailedException;
public class QRCodeDecoderTest {
public static void main(String[] args)
{
String
test=QRCodeDecode("2.jpg");
System.out.println(test);
}
public
static String QRCodeDecode(String filename)
{
QRCodeDecoder decoder =
new QRCodeDecoder();
File imageFile = new File(filename);
BufferedImage image = null;
try {
image = ImageIO.read(imageFile);
} catch (IOException e)
{
System.out.println("读取文件失败:" + e.getMessage());
}
try {
String decodedData = new String(decoder
.decode(new
J2SEImage(image)), "GBK");
return decodedData;
} catch (DecodingFailedException dfe)
{
System.out.println("解析失败: " + dfe.getMessage());
} catch
(UnsupportedEncodingException e) {
e.printStackTrace();
}
return
"";
}
}
class J2SEImage implements QRCodeImage {
BufferedImage image;
public J2SEImage(BufferedImage image) {
this.image = image;
}
public int getWidth() {
return image.getWidth();
}
public int getHeight() {
return image.getHeight();
}
public int getPixel(int x, int y) {
return image.getRGB(x,
y);
}
}
用到QRCode.jar包
分享到:
相关推荐
开题报告 - 基于android的QR Code二维条码生成扫描技术研究与实现.docx开题报告 - 基于android的QR Code二维条码生成扫描技术研究与实现.docx开题报告 - 基于android的QR Code二维条码生成扫描技术研究与实现.docx...
Qt编写,使用第三方库libqrencode和QZxing,支持QR二维码生成和识别,二维码可批量生成,还可以设置二维码大小颜色。免费开放使用,需要源码的请联系博主。
可以生成识别QR码,可以生成识别QR码可以生成识别QR码可以生成识别QR码
QR二维条码的编码规范,以及条码内所包含的信息
C# 二维条码生成 代码. 我不是开发者.
二维QR码识别算法研究及在智能手机上的应用 二维码研究
1.软件系统读取文本文件数据信息内容(数据信息由汉字、英文字母、数字),然后对数据信息进行QR二维码编码,生成QR二维码图片文件,并保存在指定文件夹下面。 2.生成的QR二维码图片为清晰的、黑白色BMP图片,保存...
QR二维码生成、识别源码,可以直接使用。
能满足市场化要求的QR码生成软件和QR码译码技术打下了基础,对提高二维条码 的编码性能和使用性能具有重要意义; 2.提出了QR Codc二维条码图像预处理算法的研究,在研究OR码图像预处理 算法的过程中提出了一种新的...
PHP QR Code二维条形码生成.7z
QR二维条形码-介绍,供二次开发的朋友参考。
引用产生QR Code二维条形码的Swetake.comQRCode.jar函数库; 将User输入的字符串,利用Swetake.comQRCode.jar函数库转成产生图片文件二维数组,作为产生条形码依据; 在SurfaceView上绘制二维条形码矩形图片。 分享...
基于Python的QR二维码的生成与识别程序
文中介绍了QR Code 二维条形码的技术,给出了基于数字图像处理的QR Code 二维条形码的识别方案。该方案综合运用了图像灰度化、二值化、去噪、边缘检测、图像旋转等多种图像处理方法实现条码图像的预处理、条码定位、...
Spire.Barcode for JAVA 是一款Java条形码组件,开发人员可以使用它在Java应用程序中简洁快速地生成和识别多种一维和二维条码。下载以后解压缩,然后从lib文件夹下导入Spire.Barcode.jar包到你的Java应用程序中即可...
用Matlab编程实现QR二维码的生成与识别,内含zxing-core-1.7和zxing-j2se-1.7的Zxing开源库,下载下来即可运行使用,无需再去下载相应的Zxing开源库,另外本资源将QR二维码编解码分别封装为函数了,这样使用起来方便...
使用ThoughtWorks.QRCode.dll的完整C#程序,实现了QR二维码生成、QR二维码识别、保存二维码图像等完整功能。
本资源为一个基于MATLAB/GUI的界面文件,能够通过按钮的点击,进行二维码的生成和识别
能满足市场化要求的QR码生成软件和QR码译码技术打下了基础,对提高二维条码 的编码性能和使用性能具有重要意义; 2.提出了QR Codc二维条码图像预处理算法的研究,在研究OR码图像预处理 算法的过程中提出了一种新的...
矩阵式二维条码生成技术的研究,贾裕,,由于二维条码的信息密度比较高,其编码技术比一维条码更为复杂,尤其对于矩阵式二维条码,因此对二维条码有效快速的编码成为当前