本文转载:http://blog.csdn.net/huakaihualuo1223/article/details/7910232
修复了原作者里面的一些小BUG,将生成的二维码,保存到了本地目录。
1.首先要导入jar包(将jar包放到lib目录下) 导入jar包的名称为:Qrcode_swetake 下载jar包的连接http://download.csdn.net/detail/huakaihualuo1223/4527504复制下面代码可以直接使用。
import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;public class EncoderHandler {public static void encoderQRCoder(String content,File file) {try {Qrcode handler = new Qrcode();handler.setQrcodeErrorCorrect('M');handler.setQrcodeEncodeMode('B');handler.setQrcodeVersion(7);System.out.PRintln(content);byte[] contentBytes = content.getBytes("UTF-8");BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);Graphics2D gs = bufImg.createGraphics();gs.setBackground(Color.WHITE);gs.clearRect(0, 0, 140, 140);//设定图像颜色:BLACKgs.setColor(Color.BLACK);//设置偏移量 不设置肯能导致解析出错int pixoff = 2;//输出内容:二维码if(contentBytes.length > 0 && contentBytes.length < 124) {boolean[][] codeOut = handler.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 ]. ");}gs.dispose();bufImg.flush();//生成二维码QRCode图片ImageIO.write(bufImg, "jpg",file);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {String content = "姓名:maysnow 电话:123687495";File file = new File("d://TestQR//1.jpg");//二维码保存目录。比如现在的是在D盘根目录创建了一个TestQR的文件夹。encoderQRCoder(content,file);}}
新闻热点
疑难解答