需要下载QRCode.jar包,下载地址:http://download.csdn.net/detail/sinat_22750705/9748085package BasicsTest;import com.swetake.util.Qrcode;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;/** * 二维码生成 * Created by xs on 2017/2/6. */public class QRCode { /** * @param args the command line arguments */ public static void main(String[] args) {//图片地址和名称 String imgPath = "./qrCodeTest.png"; //二维码的内容 String content = "/t珊丫头" + "/nCSDN :sinat_22750705"; QRCode handler = new QRCode(); handler.encodeQRCode(content, imgPath); System.out.PRintln("encoder QRcode success"); } /** * 生成二维码(QRCode)图片 * @param content * @param imgPath */ public void encodeQRCode(String content,String imgPath){ try{ //二维码实体 Qrcode qrcodeHandler=new Qrcode(); //二维码纠错 qrcodeHandler.setQrcodeErrorCorrect('M'); //二维码编码模式 qrcodeHandler.setQrcodeEncodeMode('B'); //二维码版本 qrcodeHandler.setQrcodeVersion(7); System.out.println(content); byte[] contentBytes = content.getBytes("utf-8"); //BufferedImage 提供创建和修改图像的各种类。140 长 140 宽 BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB); //返回一个呈现指定 BufferedImage 的 Graphics2D 对象。 Graphics2D gs = bufImg.createGraphics(); //背景颜色 gs.setBackground(Color.white); // public abstract void clearRect(int x, int y, int width, int height);宽 高 //clearRect() 清除一个矩形区域 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]) { //fillRect() 填充一个矩形区域 gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); } } } } else { System.err.println("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. "); } //关闭窗体,并释放资源 gs.dispose(); bufImg.flush(); //创建文件 File imgFile = new File(imgPath); // 生成二维码QRCode图片 ImageIO.write(bufImg, "png", imgFile); }catch (Exception e){ e.printStackTrace(); } }}
新闻热点
疑难解答