生成二维码

来源:互联网 发布:淘宝有晒图福利的店铺 编辑:程序博客网 时间:2024/04/30 18:40

package leo;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;public class QRCodeEncoderHandler {// 入口主函数public static void main(String[] args) {// 生成二维码图片的路径String imgPath = "F:/new_example/QrcodeImage/3301.jpg";// 此路径要根据自己的图片所在的位置来定String content = "hello 大大小小,welcome to QRCode!\n"+ "myblog [http://blog.csdn.net/tfslovexizi]";// 将要转换成二维码的内容QRCodeEncoderHandler handler = new QRCodeEncoderHandler();handler.encodeQRCoder(content, imgPath);// 写一个方法来生成二维码图片System.out.println("encode QRCode success!");}private void encodeQRCoder(String content, String imgPath) {// TODO Auto-generated method stubQrcode qrcodeHandler = new Qrcode();// 实例化一个Qrcode类;来自第三方jar包com.swetake.util.Qrcode;// 设置纠错级别:可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小qrcodeHandler.setQrcodeErrorCorrect('M');// 设置编码方式: N代表数字,A代表字符a-Z,B代表其他字符qrcodeHandler.setQrcodeEncodeMode('B');// 设置二维码版本:取值范围1-40,值越大尺寸越大,可存储的信息越大qrcodeHandler.setQrcodeVersion(7);System.out.println(content);try {byte[] contentBytes = content.getBytes("gb2312");// 将内容转换成byte// 设置二维码显示图片的宽和高BufferedImage bufImg = new BufferedImage(140, 140,BufferedImage.TYPE_INT_RGB);// 充当画笔的角色Graphics2D gs = bufImg.createGraphics();// 设置背景色gs.setBackground(Color.WHITE);// 设置二维码显示的区域  ,//注意一定要先设置背景色,然后再去清除所显示区域的内容,要不然二维码显示不出来gs.clearRect(0, 0, 140, 140);// 设置图片颜色gs.setColor(Color.BLACK);// 设置偏移量 不设置可能导致解析出错int pixoff = 0;// 输出内容 二维码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[i][j]) {gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);}}}} else {System.out.println("QRCode content byte length "+ contentBytes.length + " not in 120");}gs.dispose();bufImg.flush();File file = new File(imgPath);ImageIO.write(bufImg, "jpg", file);} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

昨天学习了一下二维码的一些东西,今天就在网上查资料,用java语言写了一个简单的二维码生成小程序

要想生成一个自己的二维码,首先需要做一个准备工作,那就是去获取一个第三方的jar包,里面提供了二维码的生成方法;此jar包是Qrcode_swetake.jar;当然我是从网上下载的,并且将此jar包上传到了资源上,有需要的可以去下载。

二维码在我们的生活中越来越多的出现在各种场合,因此二维码对我们越来越重要。二维码相对于条形码来说,储存了更多的信息。

先看看我整理的一点源码吧 (不好意思,源码一不小心给弄到上面去了) 那就看一下生成的图片吧


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 厕所堵了水满了怎么办 拉屎把厕所堵了怎么办 厕所堵了不下水怎么办 坐厕所堵了怎么办妙招 火车上丢了东西怎么办 网购的东西丢了怎么办 在酒店丢了东西怎么办 我好懒不想工作怎么办 被宠物刺猬咬了怎么办 被老鼠咬了怎么办打针 手指被老鼠咬了怎么办 孕妇被老鼠咬了怎么办 耳朵里面一直嗡嗡响怎么办 把语言栏删了怎么办 乐视会员到期了怎么办 预提费用取消了怎么办 小学生上课注意力不集中怎么办 工商抽查到你了怎么办 拿到商调函后该怎么办 苹果7p掉水里了怎么办 苹果7屏幕进水了怎么办 苹果5s掉进水里怎么办 苹果5s无法开机怎么办 苹果手机充不了电怎么办 苹果5s掉了怎么办 苹果6手机掉水里了怎么办 苹果5s关机丢了怎么办 苹果5s发热严重怎么办 手机开不开机了怎么办 苹果6基带坏了怎么办 苹果7基带坏了怎么办 苹果刷机1错误怎么办 4s解锁密码忘了怎么办 4sid密码忘记了怎么办 苹果4忘记id密码怎么办 枣核吃到肚子里怎么办 芝麻分贷款不还怎么办 德国bm家不发货怎么办 金士顿u盘坏了怎么办 箱子的密码忘了怎么办 拉杆箱密码忘了怎么办?