`

java生成二维码的三个工具

    博客分类:
  • java
 
阅读更多
1:
使用SwetakeQRCode在Java项目中生成二维码
http://swetake.com/qr/ 下载地址
或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip
这个是日本人写的,生成的是我们常见的方形的二维码
可以用中文

如:5677777ghjjjjj


有朋友问我要这个图片生成的代码,我就在网上搜索然后整理了一个类,首先要把SwetakeQRCode的jar包qrcode.jar放在工程的编译路径下,这个包的下载地址就是上面给出的SwetakeQRCode的官网http://www.swetake.com/qrcode/java/qr_java.html ,下面是一个测试的类
import com.swetake.util.Qrcode;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * Created with IntelliJ IDEA.
 * Date: 10/9/13
 * Time: 11:31 AM
 */
public class QRCodeTest {


    private static int DEFAULT_WIDTH;
    private static int UNIT_WIDTH = 10;

    public static void main(String args[]) throws Exception{
        createImg();

    }

    public static void createImg(){
        Qrcode qrcode=new Qrcode();
        //错误修正容量 
        //L水平	7%的字码可被修正
        //M水平	15%的字码可被修正
        //Q水平	25%的字码可被修正
        //H水平	30%的字码可被修正
        //QR码有容错能力,QR码图形如果有破损,仍然可以被机器读取内容,最高可以到7%~30%面积破损仍可被读取。
        //相对而言,容错率愈高,QR码图形面积愈大。所以一般折衷使用15%容错能力。
        qrcode.setQrcodeErrorCorrect('M');/* L','M','Q','H' */
        qrcode.setQrcodeEncodeMode('B');/* "N","A" or other */
        qrcode.setQrcodeVersion(3);/* 0-20 */

        String testString = "5677777ghjjjjj";

        byte[] buff = null;
        try {
            buff = testString.getBytes("utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        boolean[][] bRect = qrcode.calQrcode(buff);
        DEFAULT_WIDTH = bRect.length * UNIT_WIDTH;

        BufferedImage bi = new BufferedImage(DEFAULT_WIDTH, DEFAULT_WIDTH, BufferedImage.TYPE_INT_RGB);
//        int unitWidth = DEFAULT_WIDTH / bRect.length;

// createGraphics
        Graphics2D g = bi.createGraphics();

// set background
        g.setBackground(Color.WHITE);
        g.clearRect(0, 0, DEFAULT_WIDTH, DEFAULT_WIDTH);
        g.setColor(Color.BLACK);

        if (buff.length>0 && buff.length <123){

            for (int i=0;i<bRect.length;i++){

                for (int j=0;j<bRect.length;j++){
                    if (bRect[j][i]) {
                        g.fillRect(j*UNIT_WIDTH, i*UNIT_WIDTH, UNIT_WIDTH-1, UNIT_WIDTH-1);
                    }
                }

            }
        }

        g.dispose();
        bi.flush();

        String FilePath="QRCode.png";
        File f = new File(FilePath);

        try {
            ImageIO.write(bi, "png", f);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Create QRCode finished!");
    }
}


对于代码进行一下说明,其它的就不说了,主要说一下如何使QRcode充满整个画面,我这里就是先定义UNIT_WIDTH=10或着其它的值,然后再算出画面应该为多大,之后画出的就会充满整个画面,不过,这样好看是好看,我们就能控制画面的大小了,所以也可以先定义DEFAULT_WIDTH也就是画面的长宽,然后再算出UNIT_WIDTH,这样画面的大小就是固定的了,不过,这样算出的单位DEFAULT_WIDTH / bRect.length不一定整好整除,所以画面看起来会不太爽,这些都不是大问题,调一调就可以了。bRect.length这个的大小是由qrcode.setQrcodeVersion(3)这里面的值决定,不是由字符串的长度决定。

还有下面的zxing也可以生成这样的qrcode的。


2:
使用BarCode4j生成条形码和二维码
BarCode4j网址:http://sourceforge.net/projects/barcode4j/

barcode4j是使用datamatrix的二维码生成算法,为支持qr的算法
datamatrix是欧美的标准,qr为日本的标准,
barcode4j一般生成出来是长方形的

如:88777alec000yan


这个博客这方面说的挺清楚的:
http://baijinshan.iteye.com/blog/1004554

3:zxing
zxing 这个是google的
下载地址
http://code.google.com/p/zxing/downloads/list
import java.io.File;
import java.util.Hashtable;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;



public class QRCodeEvents {
	
	public static void main(String []args)throws Exception{
		String text = "你好";
		int width = 100;
		int height = 100;
		String format = "png";
		Hashtable hints= new Hashtable();
		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
		 BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height,hints);
		 File outputFile = new File("new.png");
		 MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);
		 
	}
}

  • 大小: 10.7 KB
  • 大小: 9.3 KB
分享到:
评论
3 楼 yuming.xiao 2015-05-19  
  
2 楼 Lin3li 2014-08-15  
太强大了,顶
1 楼 taowayi 2013-10-14  
很强大支持来了!

相关推荐

    Java二维码生成工具

    以下是一个简单的Java代码示例,展示如何使用ZXing库生成二维码: ```java import com.google.zxing.*; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import ...

    java实现生成二维码(包括必要jar)

    在Java编程环境中,生成二维码是一项常见的任务,...总的来说,Java生成二维码是一个结合了编码、图像处理和第三方库使用的综合过程。通过理解和实践,你可以熟练地在Java项目中集成这一功能,满足各种应用场景的需求。

    java excel生成二维码(可以添加图标和文字).zip

    这个压缩包提供了必要的代码示例,包括`qrcode.java`、`MatrixToImageWriter.java`和`LogoConfig.java`三个关键文件,它们分别对应二维码生成、图像转换以及自定义配置的功能。下面我们将逐一解析这些知识点。 1. *...

    Java生成二维码图片

    本篇文章将详细探讨如何使用Java生成二维码图片,以及如何在Web前端展示这些二维码。 首先,Java中的二维码生成通常依赖于第三方库,例如Zxing(ZXing,意为“zebra crossing”,斑马线)和QRCodeEncoder。Zxing是...

    java生成二维码图片

    你可以通过解压这个文件,查看其内容,进一步了解和实践Java生成二维码的完整流程。 总的来说,Java生成二维码图片是通过引入ZXing库,并利用其中的`QRCodeWriter`和`BitMatrix`类,配合适当的配置,可以轻松实现。...

    java生成二维码 二维码解析

    1. 引入库:在Java中,我们可以使用第三方库如Zxing(又名ZXing,意为“zebra crossing”),这是一个开源的条码读取库,同时也支持生成二维码。首先,需要将Zxing库添加到项目依赖中,如果是Maven项目,可以在pom....

    JAVA生成二维码方法

    ### JAVA生成二维码方法详解 #### 一、二维码简介 二维码是一种在二维空间内存储信息的条形码形式,由黑白相间的图案组成。它能够存储大量数据,包括文本、URL等,并且支持多种编码方式。二维码的设计巧妙地利用了...

    Java 生成二维码源码

    在IT行业中,生成二维码是一种常见的数据编码方式,...以上就是关于“Java生成二维码源码”的详细讲解,希望对你在实际开发中生成二维码有所帮助。记得根据项目的具体需求调整代码,并确保正确处理可能出现的异常情况。

    java生成二维码 经典 demo 案例

    在Java编程环境中,生成二维码是一项常见的任务,尤其在移动应用、网页链接分享和物联网设备通信等领域。本案例提供了一个超简洁的Java二维码生成经典DEMO,通过三个关键文件——`core.jar`、`QRUtil.java`和`testQR...

    java生成二维码.doc

    Java 生成二维码是一种常见的...总之,Java生成二维码主要依赖于ZXing这样的第三方库,通过将数据编码成`BitMatrix`,再将其转换为图像,最终保存为图片文件。这个过程涉及到编码、图像处理和文件I/O等多个技术环节。

    java 生成二维码

    总结来说,Java生成二维码主要涉及以下知识点: 1. **第三方库**:如ZXing,提供二维码编码和解码功能。 2. **二维码编码**:使用`QRCodeWriter`将数据编码为位矩阵。 3. **图像转换**:利用`MatrixToImageWriter`...

    java代码生成二维码.zip

    在Java中,生成二维码通常需要使用第三方库,例如Zxing(ZXing是“Zebra Crossing”的缩写,意为斑马线)或者qrcode-javase。这个压缩包已经包含了一个名为"qrcode"的辅助包,意味着它可能包含了Zxing或者其他类似的...

    java生成二维码和解析二维码所需jar包

    这里提到的"java生成二维码和解析二维码所需jar包"正是提供这种功能的第三方组件。 在Java中,常用的二维码生成和解析库有ZXing(Zebra Crossing)和qrcode-javase。ZXing是一个开源的多格式一维/二维条码图像处理...

    生成二维码到word中

    这个任务涉及到三个主要技术领域:二维码生成、PHP编程语言以及Microsoft Word文档处理。以下是对这些知识点的详细说明: 1. **二维码(Quick Response Code)**: 二维码是一种二维条形码,能够存储大量的信息,...

    java QRcode二维码生成包

    1. **生成二维码**:该代码包提供了API接口,允许开发者输入文本、URL或其他数据,自定义生成二维码的大小、颜色、纠错级别等参数。 2. **解码读取**:除了生成,这个包还支持解码功能,可以将扫描到的二维码图像...

    java生成二维码

    总之,Java生成二维码是一项常见的任务,可以通过引入第三方库,如ZXing,轻松实现。开发者可以根据需求调整参数,生成符合应用场景的二维码。对于初学者而言,理解二维码的工作原理和使用Java进行生成是迈向更高级...

    Java生成二维码

    要使用Java生成二维码,我们通常会依赖第三方库,如Zxing(ZXing是“Zone eXchange and Recognition”的缩写,意为区域交换和识别)。Zxing是一个开源的、多平台的条码处理库,提供了完整的二维码读取和生成功能。 ...

    java 代码生成二维码

    在IT行业中,生成二维码是一项常见的任务,特别是在移动应用...总之,使用Java生成二维码涉及到对编码库的理解、参数配置和图像处理。通过合理选择和使用库,开发者可以轻松地将数据转换为二维码,满足不同业务需求。

    基于java开发的二维码生成小程序

    生成二维码的过程主要包括数据编码、错误校正和模式转换三个步骤。在Java中,我们可以使用开源库如ZXing(Zebra Crossing)或Java QRCode Generator来实现这些功能。 ZXing是一个流行的开源项目,提供了多种条码和...

    java生成二维码源码

    你可以解压并运行这个项目,以便更深入地理解和实践Java生成二维码的过程。 总结来说,生成Java二维码的关键在于理解ZXing库的工作原理,以及如何使用其提供的API来创建和编码数据。通过调整参数和自定义选项,我们...

Global site tag (gtag.js) - Google Analytics