`
zzc1684
  • 浏览: 1190639 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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
这个博客这方面说的挺清楚的:
http://baijinshan.iteye.com/blog/1004554

3:zxing
zxing 这个是google的
下载地址
http://code.google.com/p/zxing/downloads/list

Java代码:

  1. import java.io.File;   
  2. import java.util.Hashtable;   
  3.   
  4. import com.google.zxing.BarcodeFormat;   
  5. import com.google.zxing.EncodeHintType;   
  6. import com.google.zxing.MultiFormatWriter;   
  7. import com.google.zxing.client.j2se.MatrixToImageWriter;   
  8. import com.google.zxing.common.BitMatrix;   
  9. import com.google.zxing.qrcode.QRCodeWriter;   
  10.   
  11.   
  12.   
  13. public class QRCodeEvents {   
  14.        
  15.     public static void main(String []args)throws Exception{   
  16.         String text = "你好";   
  17.         int width = 100;   
  18.         int height = 100;   
  19.         String format = "png";   
  20.         Hashtable hints= new Hashtable();   
  21.         hints.put(EncodeHintType.CHARACTER_SET, "utf-8");   
  22.          BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height,hints);   
  23.          File outputFile = new File("new.png");   
  24.          MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);   
  25.             
  26.     }   
  27. }  

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. render   : "canvas",//设置渲染方式   
  2. width       : 256,     //设置宽度   
  3. height      : 256,     //设置高度   
  4. typeNumber  : -1,      //计算模式   
  5. correctLevel    : QRErrorCorrectLevel.H,//纠错等级   
  6. background      : "#ffffff",//背景颜色   
  7. 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. function utf16to8(str) {   
  2.     var out, i, len, c;   
  3.     out = "";   
  4.     len = str.length;   
  5.     for(i = 0; i < len; i++) {   
  6.     c = str.charCodeAt(i);   
  7.     if ((c >= 0x0001) && (c <= 0x007F)) {   
  8.         out += str.charAt(i);   
  9.     } else if (c > 0x07FF) {   
  10.         out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));   
  11.         out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));   
  12.         out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));   
  13.     } else {   
  14.         out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));   
  15.         out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));   
  16.     }   
  17.     }   
  18.     return out;   

分享到:
评论

相关推荐

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

    本篇文章主要介绍了java实现二维码生成的几个方法(推荐),具有一定的参考价值,有兴趣的可以了解一下。

    Java生成和解析二维码

    Java实现生成和解析二维码,非常简单,拿来直接用就行,很方便哦。 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码...

    Java自定义生成二维码(兼容你所有的需求)实现效果说明

    经过几个月理论学习+开发,这个基于zxing开发的Java版本二维码生成器诞生。一分价钱一分货,相信这源码对你非常有用,有问题随时可以评论沟通。 此文档是让下载朋友先看看效果,如果没有问题可以下载。

    Java自定义生成二维码(兼容你所有的需求)

    Java自定义生成二维码(兼容你所有的需求)终极版本,已在生产环境稳定...经过几个月理论学习+开发,这个基于zxing开发的Java版本二维码生成器诞生。一分价钱一分货,相信这源码对你非常有用,有问题随时可以评论沟通。

    微信二维码生成的几种方式

    微信扫描支付二维码生成,以及传参实例,用于各种系统的一个附加功能,里面的地址需要注意,导入的时候改一下自己的地址

    用Java实现生成带Logo的二维码并跳转到指定地址

    使用Java生成带有Logo的二维码并能够实现扫描二维码跳转到指定地址的功能,源码打的jar包,直接导入就可使用,仅需改几个地址就可使用,零基础的福音!

    java 的二维码操作

    这是几个java 生成二维码的实例

    java二维码生成与解析代码实现(内含核心包QRCode.jar)

    java二维码生成与解析源码内含核心包文件QRCode.jar。 二维码的特点: 1. 高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。 2. 编码...

    java生成和解析二维码demo源码

    1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。 2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行...

    zxing彩色二维码工具类

    该工具类目前比较简单,只是实现了普通二维码、logo二维码、彩色二维码和二维码条形码解析几个功能。 根据此工具类可扩展生成LOGO+文字的二维码,暂时不需要没有封装。

    JAVA设计-二维码门禁管理系统.zip

    内容概要: JAVA设计_二维码门禁管理系统.zip包含了一个基于...通过该系统的学习和实践,可以深入了解Java语言在物联网、智能安防等领域的应用和实现方法。 场景目标: 该系统旨在为需要进行门禁管理的场所提供一种方

    Zxing:能够快速实现扫描二维码功能的库

    二维码扫描的功能在很多APP上都会出现,较为常用的第三方库是zxing,zxing很强大,但是有时候我们并不需要那么复杂的功能,只需要简单的扫描、生成以及处理扫描结果,一般都是通过重写几个类来实现项目需求。...

    Java小程序

    内容如下: 1、简易计算器 2、个人通讯录 3、简易二维码生成器 4、烟花效果 这几个小程序有部分是我做过得课程设计,比较简单,可供参考 如果对二维码感兴趣也可以看看

    使用EasyPOI导出Excel模板数据(含图片)博文源码

    博文《使用EasyPOI导出Excel模板数据(含图片)》所含源码,应众多网友要求放出来。包含测试类、导出工具类、图像工具类、Excel模板

    BarCode4J.jar

    在barcode4j中,生成条形码的过程主要包括以下几个步骤: 定义字体 在生成条形码之前,需要先定义字体。字体是条形码中的重要组成部分,它用于描述条形码中的数据。在barcode4j中,可以使用OpenType字体格式来定义...

    Java学生会管理系统

    系统主要包括以下几个核心功能模块: 成员管理:学生会成员信息的录入、修改和查询,包括学生姓名、班级、联系方式等。管理员可以轻松管理学生会成员名单,并对成员信息进行统计分析。 活动管理:学生会活动的发布...

    Android开发框架之自定义ZXing二维码扫描界面并解决取景框拉伸问题

    由于改了好几个类,还是去年的事都忘得差不多了,所以只能上这个类的代码了,主要就是改了这个CaptureActivity.java package com.zxing.activity; import java.io.IOException; import java.util.Vector; import ...

    PDF到期自毁.pdf

    2. 在线分享的PDF,可以将pdf文件生成链接或者二维码。并且达到防止扩散和阅读限制的安全设置。 maipdf 有两个版本比较适合你 在线版的 pdf链接,可以设置到期时间和阅读次数 离线版的pdf,把pdf变成一个桌面...

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

     6.4 生成带参数二维码 149  6.4.1 创建临时二维码 149  6.4.2 创建永久二维码 152  6.4.3 换取二维码 154  6.4.4 案例:通过ticket换取二维码 155  6.5 获取用户地理位置 155  6.5.1 开启获取用户...

Global site tag (gtag.js) - Google Analytics