`
thingkau
  • 浏览: 74570 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

二维码QRCode开源实现

阅读更多
日本人写的解码与编码实现Sourceforge.jp与swetake.com

这里把它们merge到一个jar文件里。

编码测试:

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 {
		Qrcode qrcode=new Qrcode();
		qrcode.setQrcodeErrorCorrect('M');
		qrcode.setQrcodeEncodeMode('B');
		qrcode.setQrcodeVersion(7);

		String testString = "_-+^%$#@!~`=&)*(";
		
		byte[] d =testString.getBytes("GBK");
		
		
        BufferedImage bi = new BufferedImage(139, 139, BufferedImage.TYPE_INT_RGB);
        
        // createGraphics
        Graphics2D g = bi.createGraphics();
        
        // set background
        g.setBackground(Color.WHITE);
        g.clearRect(0, 0, 139, 139);
        
        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*3+2,i*3+2,3,3);
				    }
				}
			
		    }
		}
		
		g.dispose();
		bi.flush();

        String FilePath="TestQRCode.png";
        File f = new File(FilePath);
		
		ImageIO.write(bi, "png", f);
		System.out.println("doned!");
	}
	
}


解码测试:

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 QRCodeDecoderTest() {
    }
    
    public static void main(String[] args) {
        
        QRCodeDecoder decoder = new QRCodeDecoder();
        
        File imageFile = new File("TestQRCode.png");
        
        BufferedImage image = null;
        
        try {
            image = ImageIO.read(imageFile);
        } catch (IOException e) {
            System.out.println("Error: "+ e.getMessage());
        }
        try {
            
        	String decodedData = new String(decoder.decode(new J2SEImage(image)),"GBK");
			
            System.out.println(decodedData);
        } catch (DecodingFailedException dfe) {
            System.out.println("Error: " + dfe.getMessage());
        } catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
        
        
    }
}
 
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);
    }
    
}
分享到:
评论
4 楼 eppen 2011-09-15  
QR-CODE,例子里面生成的是139×139的图片,
最小可以多大?
3 楼 eppen 2011-04-07  
合并之后日本人那个库(Open Source QR Code Library Project
http://sourceforge.jp/projects/qrcode/ )说有几种不能解码的,你这个库可以解码了?
2 楼 omica 2010-09-26  
很好用,谢谢。。。
1 楼 xyflash 2010-05-27  

解密出错  提示:Give up decoding ...
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    QRCode.zip_openvc一扫码_qrcode开源库_二维码 opencv_二维码 zbar_二维码opencv

    【标题】"QRCode.zip_openvc一扫码_qrcode开源库_二维码 opencv_二维码 zbar_二维码opencv" 提供了一个关于使用OpenCV和ZBar库进行二维码扫描的项目实例。这个压缩包包含了一个名为"QRCode"的解决方案文件(QRCode....

    C# 生成二维码 QrCode.Net

    其中,QrCode.Net是一个流行的开源库,它使得在C#项目中生成二维码变得简单易行。 QrCode.Net库允许开发者通过几行代码就能创建出符合国际标准的二维码。这个库支持多种编码格式,包括URL、文本、电话号码等,并且...

    DELPHI XE5 FireMonkey2 for Win32的二维码QRCODE 生成

    在描述中提到的"DELPHI XE5 FireMonkey2 for Win32的二维码QRCODE 生成",是指使用DELPHI XE5和FireMonkey2库来在Windows 32位平台上生成二维码(QRCODE)的技术。 首先,我们来看一下标签:"XE5 二维码 QRCODE"。...

    vb生成二维码QRCODE,使用zxing

    ZXing是一个开源的、多格式的一维和二维条码图像处理库,支持多种编码格式,包括QRCode。 首先,我们需要引入ZXing.Net库到我们的VB.NET项目中。这可以通过NuGet包管理器来完成,搜索"ZXing.Net"并安装。安装完成后...

    二维码QRcode生成与读取

    市面上有许多开源和商业的二维码生成和读取库,如JavaScript的`qrcode-generator`库、Python的`pyqrcode`库以及Android和iOS的系统集成的二维码读取API。开发者可以利用这些工具轻松实现二维码功能的集成。 **五、...

    delphi_二维码QRCODE_生成类及使用示例(D7-XE8)

    这个类可能使用了开源的二维码生成库,如Zxing(ZXing.NET Delphi版本),或者自行实现了二维码编码算法。 生成二维码的关键步骤包括: 1. **数据编码**:将要编码的信息(如文本、URL)转换成二进制数据。 2. **...

    c# windows mobile 生成与实时扫描二维码QRcode

    在C# Windows Mobile开发中,生成和实时扫描二维码QRcode是一项关键功能,尤其在移动设备应用中,二维码常用于快速传递信息。以下是对这个主题的详细解析: **1. C#编程基础** C#是一种面向对象的编程语言,由微软...

    winfrom生成包含中文的二维码QRcode扫一扫不乱码

    在Winform应用中,可以使用开源的QRcode生成库,如ZXing.Net,它提供了方便的API来创建二维码。首先,需要安装ZXing.Net的NuGet包,然后在代码中引用相关的类和方法。以下是一个简单的示例: ```csharp using ZXing...

    二维码QrCode生成和扫描代码Android实例

    1. **二维码QrCode** 二维码是一种二维条形码,由黑白相间的模块组成,可存储大量的数据。相比一维条形码,二维码能够在一个小的空间内编码更多的信息,且支持错误检测和纠正。 2. **Android开发中的二维码应用** ...

    Java实现二维码QRCode的编码和解码

    Java实现二维码QRCode的编码和解码是移动互联网时代中常见的技术应用,广泛用于数据交换、链接分享等场景。二维码(Quick Response Code)是一种二维条形码,可以存储大量信息,如文本、网址、联系人信息等。在Java...

    二维码QRCode和zxing的实例

    ZXing(Zebra Crossing)是Google开发的一个开源的、跨平台的条码解码库,支持多种类型的条码和二维码,其中包括QRCode。ZXing提供了Java、Android、.NET等多种语言的API,使得开发者可以方便地集成二维码的读取和...

    PHP生成二维码的调试程序phpqrcode生成二维码qrcode.zip

    在PHP中生成二维码,通常会使用开源的库来简化这个过程。这里就使用的比较流行的库phpqrcode等。本资源即是PHP使用这个库调用API生成二维码的调试程序。phpqrcode 是一个用于生成 QR 码的 PHP 类库,它提供了简单、...

    Java实现二维码QRCode的编码和解码实例

    ZXing是一个开源的条码处理库,支持多种条码格式,包括QRCode。以下是一个简单的Java代码示例,演示如何使用ZXing生成二维码: ```java import com.google.zxing.*; import com.google.zxing.common.BitMatrix; ...

    二维码(QRcode)生成算法 C语言/C++源码

    #二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...

    .net生成二维码 QRCode

    另外,还有一些第三方库,如`ZXing.Net`,它是一个流行的开源库,用于读取和生成多种条形码和二维码,包括QRCode。 **生成QRCode的基本步骤:** 1. **引入依赖库**:对于`ZXing.Net`,你需要在项目中添加NuGet包...

    Java QRCode二维码生成与识别 开源

    总的来说,这个Java QRCode二维码生成与识别开源项目提供了一整套解决方案,从生成包含汉字的二维码到读取和解析二维码图像。开发者可以利用这些工具进行各种应用开发,如移动支付、信息分享、门票验证等。通过深入...

    java生成二维码QRCode简单认识(推荐使用jquery方式生成)

    ### Java生成二维码QRCode简单认识(推荐使用jquery方式生成) #### 一、二维码简介 二维码(QR Code,Quick Response Code)是一种矩阵式二维条码,由日本Denso Wave公司于1994年发明。其设计目的是为了提高数据...

    使用phpqrcode开源库生成标准二维码

    这样就能通过test参数生成相应的二维码了 // 引入库文件 include __DIR__ . '/phpqrcode.php'; $errorCorrectionLevel = 'L'; $matrixPointSize = 9; $text = isset($_GET['text']) ? $_GET['text'] : ''; // php...

Global site tag (gtag.js) - Google Analytics