码迷,mamicode.com
首页 > 编程语言 > 详细

java文本显示成二维码

时间:2017-07-24 10:09:02      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:ted   原理   qrcode   int   fill   cat   sys   一个   输出   

需求:数据库中存储的是字符串,将该字符串显示成二维码,扫描二维码后显示字符串的信息

实现原理:从数据库中先获取数据,然后根据Qrcode生成图片,然后将该图片显示出来即可。

关键代码:

  

 1  public static void getQrcodeImg(String content,String imgPath){
 2         int width=140;
 3         int height=140;
 4         //实例化Qrcode
 5         Qrcode qrcode=new Qrcode();
 6         //设置二维码的排错率L(7%) M(15%) Q(25%) H(35%)
 7         qrcode.setQrcodeErrorCorrect(‘M‘);
 8         qrcode.setQrcodeEncodeMode(‘B‘);        
 9         //设置二维码尺寸(1~49)
10         qrcode.setQrcodeVersion(7);
11         //设置图片尺寸
12         BufferedImage bufImg=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
13         
14         //绘制二维码图片
15         Graphics2D gs=bufImg.createGraphics();
16         //设置二维码背景颜色
17         gs.setBackground(Color.WHITE);
18         //创建一个矩形区域
19         gs.clearRect(0, 0, width, height);
20         //设置二维码的图片颜色值 黑色
21         gs.setColor(Color.BLACK);
22         
23         //获取内容的字节数组,设置编码集
24         try {
25             byte[] contentBytes=content.getBytes("utf-8");
26             int pixoff=2;
27             //输出二维码
28             if(contentBytes.length>0&&contentBytes.length<120){
29                 boolean[][] codeOut=qrcode.calQrcode(contentBytes);
30                 for(int i=0;i<codeOut.length;i++){
31                     for(int j=0;j<codeOut.length;j++){
32                         if(codeOut[j][i]){
33                             gs.fillRect(j*3+pixoff, i*3+pixoff, 3, 3);
34                         }
35                     }
36                 }    
37             }
38             gs.dispose();
39             bufImg.flush();
40             //生成二维码图片
41             File imgFile=new File(imgPath);
42             ImageIO.write(bufImg, "png", imgFile);
43             
44             System.out.println("二维码生成成功!");
45             
46         } catch (UnsupportedEncodingException e) {
47             e.printStackTrace();
48         } catch (IOException e) {
49             e.printStackTrace();
50         }
51         
52     }    
    public static void main(String[] args){
        getQrcodeImg("2", "E:\\test.png");
    }

 

说明:mian方法传参,将字符串2在E盘生成一个test.png的二维码,扫描二维码可以显示出2的信息。

          调用该方法需要引入一个Qrcode的jar包,下载地址:http://download.csdn.net/detail/xiaokui_wingfly/7957815

java文本显示成二维码

标签:ted   原理   qrcode   int   fill   cat   sys   一个   输出   

原文地址:http://www.cnblogs.com/zhangcece/p/7227141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!