gpt4 book ai didi

java实现二维码生成的几个方法(推荐)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java实现二维码生成的几个方法(推荐)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

java实现二维码生成的几个方法,具体如下:

1: 使用SwetakeQRCode在Java项目中生成二维码 。

http://swetake.com/qr/ 下载地址 。

或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip 。

这个是日本人写的,生成的是我们常见的方形的二维码 。

可以用中文 。

如:5677777ghjjjjj 。

2: 使用BarCode4j生成条形码和二维码 。

BarCode4j网址:http://sourceforge.NET/projects/barcode4j/ 。

barcode4j是使用datamatrix的二维码生成算法,为支持qr的算法 。

datamatrix是欧美的标准,qr为日本的标准, 。

barcode4j一般生成出来是长方形的 。

如:88777alec000yan 。

3:zxing 。

zxing 这个是google的 。

下载地址 :http://code.google.com/p/zxing/downloads/list 。

Java代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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); 
      
  
}

4:google chart api就有实现二维码的方法 。

 利用这个api,使用google appengine进行实现.

 5:JS生成二维码 。

使用jQuery-qrcode生成二维码 。

先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), 。

qrcode.js 是实现二维码数据计算的核心类, 。

jquery.qrcode.js 是把它用jquery方式封装起来的,用它来实现图形渲染,其实就是画图(支持canvas和table两种方式) 。

支持的功能主要有:

Js代码:

?
1
text   : "https://github.com/jeromeetienne/jquery-qrcode" //设置二维码内容

Js代码:

?
1
2
3
4
5
6
7
render  : "canvas" , //设置渲染方式 
width    : 256,   //设置宽度 
height   : 256,   //设置高度 
typeNumber : -1,   //计算模式 
correctLevel  : QRErrorCorrectLevel.H, //纠错等级 
background   : "#ffffff" , //背景颜色 
foreground   : "#000000" //前景颜色

使用方式非常简单 。

Js代码:

?
1
jQuery( '#output' ).qrcode({width:200,height:200,correctLevel:0,text:content});

经过简单实践, 。

使用canvas方式渲染性能还是非常不错的,但是如果用table方式,性能不太理想,特别是IE9以下的浏览器,所以需要自行优化一下渲染table的方式,这里就不细述了.

其实上面的js有一个小小的缺点,就是默认不支持中文.

这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的, 。

而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式, 。

英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了.

解决方式当然是,在二维码编码前把字符串转换成UTF-8,具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function utf16to8(str) { 
   var out, i, len, c; 
   out = ""
   len = str.length; 
   for (i = 0; i < len; i++) { 
   c = str.charCodeAt(i); 
   if ((c >= 0x0001) && (c <= 0x007F)) { 
     out += str.charAt(i); 
   } else if (c > 0x07FF) { 
     out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); 
     out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); 
     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); 
   } else
     out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); 
     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); 
  
  
   return out; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://blog.csdn.net/feiyu84/article/details/9089497 。

最后此篇关于java实现二维码生成的几个方法(推荐)的文章就讲到这里了,如果你想了解更多关于java实现二维码生成的几个方法(推荐)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com