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

Java制作二维码代码,中间带logo图片,可设置logo大小

时间:2017-05-09 13:48:01      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:boolean   sans   amp   对象   line   else   png   create   android   

public static int createQRCode(String content, String imgPath,String logo) {  

       try {  

           Qrcode qrcodeHandler = new Qrcode();  

           qrcodeHandler.setQrcodeErrorCorrect(‘M‘);  

           qrcodeHandler.setQrcodeEncodeMode(‘B‘);  

           qrcodeHandler.setQrcodeVersion(7);  

           // System.out.println(content);  

           byte[] contentBytes = content.getBytes("gb2312");  

           //构造一个BufferedImage对象 设置宽、高

           BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);  

           Graphics2D gs = bufImg.createGraphics();  

           gs.setBackground(Color.WHITE);  

           gs.clearRect(0, 0, 140, 140);  

           // 设定图像颜色 > BLACK  

           gs.setColor(Color.BLACK);  

           // 设置偏移量 不设置可能导致解析出错  

           int pixoff = 2;  

           // 输出内容 > 二维码  

           if (contentBytes.length > 0 && contentBytes.length < 120) {  

               boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);  

               for (int i = 0; i < codeOut.length; i++) {  

                   for (int j = 0; j < codeOut.length; j++) {  

                       if (codeOut[j][i]) {  

                           gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);  

                       }  

                   }  

               }  

           } else {  

               System.err.println("QRCode content bytes length = "+ contentBytes.length + " not in [ 0,120 ]. ");  

               return -1;

           }  

           Image img = ImageIO.read(new File(logo));//实例化一个Image对象。

           gs.drawImage(img, 44, 55, 49, 30, null);

           gs.dispose();  

           bufImg.flush();  

           // 生成二维码QRCode图片  

           File imgFile = new File(imgPath);  

           ImageIO.write(bufImg, "png", imgFile);  

       }catch (Exception e){  

           e.printStackTrace();  

           return -100;

       }  

       return 0;

   }

//加入轮胎天使的logo

createQRCode("http://www.tireangel.com/android/TireAngelDemo.apk","http://www.tireangel.com/images/qrCode.jpg","http://www.tireangel.com/images/logo.jpg");

Java制作二维码代码,中间带logo图片,可设置logo大小

标签:boolean   sans   amp   对象   line   else   png   create   android   

原文地址:http://www.cnblogs.com/ljbguanli/p/6829993.html

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