`

二维码的生成

阅读更多

此生成二维码的类我用的是QRCode的包

下载地址:http://www.400gb.com/file/80134276

 

 

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

 

import javax.imageio.ImageIO;

 

import com.swetake.util.Qrcode;

 

publicclass TwoQrcode {

   publicvoid CreateQrcode(String content, String path)//二维码储存的内容,二维码以什么形式输出

         throws UnsupportedEncodingException {

//1.首先我在这里生成二维码选的一种方法是用Qrcode这个类

      Qrcode qrCode = new Qrcode();// 注意是com.swetake.util.Qrcode;

//对二维码的一些设置

      qrCode.setQrcodeErrorCorrect('M');// 设置纠错能力,纠错能力越高,二维码可以储存的信息就越少

      qrCode.setQrcodeEncodeMode('B');// 设置编码为二进制

      qrCode.setQrcodeVersion(7);// 设置版本

   //2.对要储存在二维码里的信息进行处理

// 字符编码的转换

      if (content.isEmpty()) {

         System.out.println("传入值为空");

         return;

      }

//字符编码的转换是为了我们在扫描时不要出现乱码。如果项目本身就设置了是UTF-8,则此处IOS-8859-1改成UTF-8即可。

byte[] bt = new String(content.getBytes("ISO-8859-1"), "UTF-8").getBytes();// 有异常,抛出

      // 3.创建图像数据的缓冲区.具有8RGB颜色的分辨图像

      BufferedImage image = new BufferedImage(140, 140,

            BufferedImage.TYPE_INT_RGB);

      // 创建画笔工具

      Graphics2D g2D = (Graphics2D) image.getGraphics();

      g2D.setBackground(Color.WHITE);// 设置背景色为白色

      g2D.clearRect(0, 0, 140, 140);// 绘制矩形Rect

      g2D.setColor(Color.BLACK);// 前景色为黑色

      if (bt.length > 0) {// 这个方法传的值不为空时

         boolean[][] s = qrCode.calQrcode(bt);

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

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

                if (s[j][i]) {// 为真时就画,即前景色的黑点

                   g2D.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);

                }

            }

         }

 

      }

      g2D.dispose();// 画笔释放

      image.flush();// 将残留的数据推出缓冲区

      try {

         ImageIO.write(image, "jpg", new File(path));//以文件的方式输出

         // ImageIO.write(image, "jpg", outputStream);//以流的形式将image二维码图像输出

      } catch (IOException e) {

         // TODO Auto-generated catch block

         e.printStackTrace();

      }

   }

}

 

 

 

  • 大小: 34.1 KB
分享到:
评论
3 楼 X.C-小丑 2014-12-21  
备注太详细了吧....
2 楼 一生爱你 2014-12-09  
应该把截图带上这样会更好的
1 楼 xl亮 2014-12-09  
顶个啊啊!!

相关推荐

Global site tag (gtag.js) - Google Analytics