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
分享到:
相关推荐
以下是一个简单的Java代码示例,展示如何使用ZXing库生成二维码: ```java import com.google.zxing.*; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import ...
在Java编程环境中,生成二维码是一项常见的任务,...总的来说,Java生成二维码是一个结合了编码、图像处理和第三方库使用的综合过程。通过理解和实践,你可以熟练地在Java项目中集成这一功能,满足各种应用场景的需求。
这个压缩包提供了必要的代码示例,包括`qrcode.java`、`MatrixToImageWriter.java`和`LogoConfig.java`三个关键文件,它们分别对应二维码生成、图像转换以及自定义配置的功能。下面我们将逐一解析这些知识点。 1. *...
本篇文章将详细探讨如何使用Java生成二维码图片,以及如何在Web前端展示这些二维码。 首先,Java中的二维码生成通常依赖于第三方库,例如Zxing(ZXing,意为“zebra crossing”,斑马线)和QRCodeEncoder。Zxing是...
你可以通过解压这个文件,查看其内容,进一步了解和实践Java生成二维码的完整流程。 总的来说,Java生成二维码图片是通过引入ZXing库,并利用其中的`QRCodeWriter`和`BitMatrix`类,配合适当的配置,可以轻松实现。...
1. 引入库:在Java中,我们可以使用第三方库如Zxing(又名ZXing,意为“zebra crossing”),这是一个开源的条码读取库,同时也支持生成二维码。首先,需要将Zxing库添加到项目依赖中,如果是Maven项目,可以在pom....
### JAVA生成二维码方法详解 #### 一、二维码简介 二维码是一种在二维空间内存储信息的条形码形式,由黑白相间的图案组成。它能够存储大量数据,包括文本、URL等,并且支持多种编码方式。二维码的设计巧妙地利用了...
在IT行业中,生成二维码是一种常见的数据编码方式,...以上就是关于“Java生成二维码源码”的详细讲解,希望对你在实际开发中生成二维码有所帮助。记得根据项目的具体需求调整代码,并确保正确处理可能出现的异常情况。
在Java编程环境中,生成二维码是一项常见的任务,尤其在移动应用、网页链接分享和物联网设备通信等领域。本案例提供了一个超简洁的Java二维码生成经典DEMO,通过三个关键文件——`core.jar`、`QRUtil.java`和`testQR...
Java 生成二维码是一种常见的...总之,Java生成二维码主要依赖于ZXing这样的第三方库,通过将数据编码成`BitMatrix`,再将其转换为图像,最终保存为图片文件。这个过程涉及到编码、图像处理和文件I/O等多个技术环节。
总结来说,Java生成二维码主要涉及以下知识点: 1. **第三方库**:如ZXing,提供二维码编码和解码功能。 2. **二维码编码**:使用`QRCodeWriter`将数据编码为位矩阵。 3. **图像转换**:利用`MatrixToImageWriter`...
在Java中,生成二维码通常需要使用第三方库,例如Zxing(ZXing是“Zebra Crossing”的缩写,意为斑马线)或者qrcode-javase。这个压缩包已经包含了一个名为"qrcode"的辅助包,意味着它可能包含了Zxing或者其他类似的...
这个任务涉及到三个主要技术领域:二维码生成、PHP编程语言以及Microsoft Word文档处理。以下是对这些知识点的详细说明: 1. **二维码(Quick Response Code)**: 二维码是一种二维条形码,能够存储大量的信息,...
这里提到的"java生成二维码和解析二维码所需jar包"正是提供这种功能的第三方组件。 在Java中,常用的二维码生成和解析库有ZXing(Zebra Crossing)和qrcode-javase。ZXing是一个开源的多格式一维/二维条码图像处理...
1. **生成二维码**:该代码包提供了API接口,允许开发者输入文本、URL或其他数据,自定义生成二维码的大小、颜色、纠错级别等参数。 2. **解码读取**:除了生成,这个包还支持解码功能,可以将扫描到的二维码图像...
总之,Java生成二维码是一项常见的任务,可以通过引入第三方库,如ZXing,轻松实现。开发者可以根据需求调整参数,生成符合应用场景的二维码。对于初学者而言,理解二维码的工作原理和使用Java进行生成是迈向更高级...
要使用Java生成二维码,我们通常会依赖第三方库,如Zxing(ZXing是“Zone eXchange and Recognition”的缩写,意为区域交换和识别)。Zxing是一个开源的、多平台的条码处理库,提供了完整的二维码读取和生成功能。 ...
在IT行业中,生成二维码是一项常见的任务,特别是在移动应用...总之,使用Java生成二维码涉及到对编码库的理解、参数配置和图像处理。通过合理选择和使用库,开发者可以轻松地将数据转换为二维码,满足不同业务需求。
生成二维码的过程主要包括数据编码、错误校正和模式转换三个步骤。在Java中,我们可以使用开源库如ZXing(Zebra Crossing)或Java QRCode Generator来实现这些功能。 ZXing是一个流行的开源项目,提供了多种条码和...
你可以解压并运行这个项目,以便更深入地理解和实践Java生成二维码的过程。 总结来说,生成Java二维码的关键在于理解ZXing库的工作原理,以及如何使用其提供的API来创建和编码数据。通过调整参数和自定义选项,我们...