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

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;
    19. }

java生成二维码的几个方法的更多相关文章

  1. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  2. java 生成二维码、可带LOGO、可去白边

      1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...

  3. java 生成二维码后叠加LOGO并转换成base64

      1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception { String dat ...

  4. java生成二维码打印到浏览器

    java生成二维码打印到浏览器   解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxin ...

  5. 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...

    版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...

  6. java生成二维码(需导入第三方ZXing.jar包)

    //这个类是用来解析,通过图片解析该图片的网页链接是什么 package util; import java.awt.Graphics2D;import java.awt.geom.AffineTra ...

  7. JAVA生成二维码图片代码

    首先需要导入 QRCode.jar 包 下载地址看这里   http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt. ...

  8. java生成二维码图片

    1.POM文件引入 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core& ...

  9. java生成二维码的三个工具

    1.  使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode ...

随机推荐

  1. 饮冰三年-人工智能-Python-22 Python初识Django

    1:一个简单的web框架 # 导包 from wsgiref.simple_server import make_server #自定义个处理函数 def application(environ,st ...

  2. PHP利用模板消息无限制向用户推送消息

    <?php //获取微信access_token function getaccess_token(){ //appid与appsecret改成你自己的 $appid = '自己的appid'; ...

  3. mysql的坑

    mysql安装报错: 1.The service already exists! The current server installed: 因为mysql卸载不完全. 解决方法: C:\window ...

  4. 【redis】-- springboot集成redis及使用

    springboot自动配置的redis并不是特别好用,所以需要我们使用原生的jedis, 1.添加依赖 2.在application文件中配置 # Redis服务器地址 redis.host= # ...

  5. Android的Service组件

    首先,Service在Android体系中是什么?有什么功能?1. Service是服务,其执行线程是UI主线程(宿主进程的主线程):2. 和Activity最大的不同是:Service不涉及到与用户 ...

  6. Python网络数据采集PDF

    Python网络数据采集(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/16c4GjoAL_uKzdGPjG47S4Q 提取码:febb 复制这段内容后打开百度网盘手 ...

  7. Mysql概念及基本操作

    1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...

  8. JavaScript(五)

    循环语句 程序中进行有规律的重复性操作,需要用到循环语句. for循环 for(var i=0;i<len;i++) { ...... } while循环 var i=0; while(i< ...

  9. svn提交按钮灰选

    1.当我新建了一个文件或者文件夹,要提交的时候出现ok按钮灰选,提交不了. 解决方法:提交信息多写一些字儿就可以了,挥着回车换行也行 2.报错:you need to upgrade the work ...

  10. 在Windows上安装Nexus 3.2.0-01

      在Windows上安装Nexus 环境: Windows 7 apache-maven-3.3.9 JDK 1.8 下载Nexus: https://sonatype-download.globa ...