需要使用到的jar包:QRCode.jar 下边是一个链接如果链接失效请百度下载。

这里提供一个下载: 点此下载QRCode.jar

package com.lc.test;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import javax.imageio.ImageIO;import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.exception.DecodingFailedException;import com.swetake.util.Qrcode;public class TwoDimensionCode {/*** 生成二维码(QRCode)图片* @param content 存储内容* @param imgPath 图片路径*/public void encoderQRCode(String content, String imgPath)  {this.encoderQRCode(content, imgPath, "png", 7);}/*** 生成二维码(QRCode)图片* @param content 存储内容* @param output 输出流*/public void encoderQRCode(String content, OutputStream output) {this.encoderQRCode(content, output, "png", 7);}/*** 生成二维码(QRCode)图片* @param content 存储内容* @param imgPath 图片路径* @param imgType 图片类型*/public void encoderQRCode(String content, String imgPath,  String imgType) {this.encoderQRCode(content, imgPath, imgType, 7);}/*** 生成二维码(QRCode)图片* @param content 存储内容* @param output 输出流* @param imgType 图片类型*/public void encoderQRCode(String content, OutputStream output, String imgType) {this.encoderQRCode(content, output, imgType, 7);}/*** 生成二维码(QRCode)图片* @param content 存储内容* @param imgPath 图片路径* @param imgType 图片类型* @param size 二维码尺寸*/public void encoderQRCode(String content, String imgPath,  String imgType, int size) {try {BufferedImage bufImg =this.qRCodeCommon(content, imgType, size);File imgFile = new File(imgPath);// 生成二维码QRCode图片ImageIO. write(bufImg, imgType , imgFile);} catch (Exception e) {e.printStackTrace();}}/*** 生成二维码(QRCode)图片* @param content 存储内容* @param output 输出流* @param imgType 图片类型* @param size 二维码尺寸*/public void encoderQRCode(String content, OutputStream output, String imgType, int size) {try {BufferedImage bufImg =this.qRCodeCommon(content, imgType, size);// 生成二维码QRCode图片ImageIO. write(bufImg, imgType, output);} catch (Exception e) {e.printStackTrace();}}/*** 生成二维码(QRCode)图片的公共方法* @param content 存储内容* @param imgType 图片类型* @param size 二维码尺寸* @return*/private BufferedImage qRCodeCommon(String content, String  imgType, int size) {BufferedImage bufImg = null;try {Qrcode qrcodeHandler = new Qrcode();// 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小qrcodeHandler.setQrcodeErrorCorrect( 'M');qrcodeHandler.setQrcodeEncodeMode( 'B');// 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大qrcodeHandler.setQrcodeVersion(size);// 获得内容的字节数组,设置编码格式byte[] contentBytes = content.getBytes( "utf-8");// 图片尺寸int imgSize = 67 + 12 * (size - 1);bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB );Graphics2D gs = bufImg.createGraphics();// 设置背景颜色gs.setBackground(Color. WHITE);gs.clearRect(0, 0, imgSize, imgSize);// 设定图像颜色> BLACKgs.setColor(Color. BLACK);// 设置偏移量,不设置可能导致解析出错int pixoff = 2;// 输出内容> 二维码if (contentBytes. length > 0 && contentBytes.length < 800) {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 {throw new Exception( "QRCode content bytes  length = " + contentBytes. length + " not in [0, 800].");}gs.dispose();bufImg.flush();} catch (Exception e) {e.printStackTrace();}return bufImg;}/*** 解析二维码(QRCode)* @param imgPath 图片路径* @return*/public String decoderQRCode(String imgPath) {// QRCode 二维码图片的文件File imageFile = new File(imgPath);BufferedImage bufImg = null;String content = null;try {bufImg = ImageIO.read(imageFile);QRCodeDecoder decoder = new QRCodeDecoder();content = new String(decoder.decode(new TwoDimensionCodeImage(bufImg)), "utf-8" );} catch (IOException e) {System. out.println( "Error: " + e.getMessage());e.printStackTrace();} catch (DecodingFailedException dfe) {System. out.println( "Error: " + dfe.getMessage());dfe.printStackTrace();}return content;}/*** 解析二维码(QRCode)* @param input 输入流* @return*/public String decoderQRCode(InputStream input) {BufferedImage bufImg = null;String content = null;try {bufImg = ImageIO. read(input);QRCodeDecoder decoder = new QRCodeDecoder();content = new String(decoder.decode( new TwoDimensionCodeImage(bufImg)), "utf-8" );} catch (IOException e) {System. out.println( "Error: " + e.getMessage());e.printStackTrace();} catch (DecodingFailedException dfe) {System. out.println( "Error: " + dfe.getMessage());dfe.printStackTrace();}return content;}public static void main(String[] args) {String imgPath = "G:/ZTFCard.png";String encoderContent = "我的名片" + "\n我的微博:[http://blog.csdn.net/xlgen157387]" + "\n电子邮件:[1573876303@qq.com]" +"\n手机:[1808462274]" ;TwoDimensionCode handler = new TwoDimensionCode();handler.encoderQRCode(encoderContent, imgPath, "png" );
//         try {
//              OutputStream output = new FileOutputStream(imgPath);
//              handler.encoderQRCode(content, output);
//         } catch (Exception e) {
//              e.printStackTrace();
//         }System. out.println( "========encoder success" );String decoderContent = handler.decoderQRCode(imgPath);System. out.println( "解析结果如下:" );System. out.println(decoderContent);System. out.println( "========decoder success!!!" );}
}
package com.lc.test;import java.awt.image.BufferedImage;import jp.sourceforge.qrcode.data.QRCodeImage;public class TwoDimensionCodeImage implements QRCodeImage {BufferedImage bufImg;public TwoDimensionCodeImage(BufferedImage bufImg) {this.bufImg = bufImg;}public int getHeight() {return bufImg.getHeight();}public int getPixel(int x, int y) {return bufImg.getRGB(x, y);}public int getWidth() {return bufImg.getWidth();}
}

下面是一个测试的类:QRtest.java

public class QRtest {public static void main(String[] args){TwoDimensionCode td = new TwoDimensionCode();td.encoderQRCode("这是一个测试文件类","d://123.jpg","jpg",12);}
}

(注意:有的朋友可能在使用代码的时候,无法导入javax.imageio.ImageIO这个包,请参考这个:点击打开链接

解决方案是:Project---Properties,选择Java Build Path,选中右侧的Libraries,选择Add Library如下图,选中JRE System Library 选择next,进入下一界面选择Execution environment,点击Enviroments按钮选择你采用的JDK如JavaSE-1.6等,不要选下面的OSGi,最后单击完成即可。

结果如下:

OK!

Java代码生成二维码图片相关推荐

  1. Java代码生成二维码

    Java代码生成二维码: 背景:在项目的需求中,大部分会需要你写一个生成二维码的功能,二维码里面存储特定的信息 示例: pom.xml依赖: <!-- Zxing--><depend ...

  2. 使用Java生成二维码图片(亲测)

    下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...

  3. java生成二维码图片(有logo),并在图片下方附文字

    logo配置类 /*** Created by Amber Wang on 2017/11/27 17:25.*/import java.awt.*;public class LogoConfig { ...

  4. java生成二维码图片、转base64

    本文介绍通过java把文字或url生成二维码,使用浏览器或者微信扫一扫即可获得文字或url内容,超简单的方法,两个步骤复制粘贴即可使用. 注意:内容是文字会直接显示,如果内容为url地址那么会直接访问 ...

  5. 使用Java生成二维码图片

    下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...

  6. springboot+java生成二维码图片

    接下来将从IDEA创建springboot项目到生成效果图详细地为大家展示二维码的制作过程 1.首先是创建springboot项目 上面的图有红色标记的地方需要填写的,比如项目存放的路径,包名等,其他 ...

  7. JAVA 生成二维码图片 可加Logo

    现在二维码在很多地方有运用,在这里写一份简洁明快的代码,方便以后使用.有需要的朋友可以直接复制过去 直接使用 所需要的jar:QRCode.jar jar下载地址:点击打开链接 package QrC ...

  8. Java - 生成二维码图片

    文章目录 生成二维码图片 参考 生成二维码图片 新建 Maven Project,引入依赖: <dependency><groupId>com.google.zxing< ...

  9. Java生成二维码图片,手机软件扫码后跳转网页

    一.创建maven工程,添加如下依赖 <dependencies><dependency><groupId>com.google.zxing</groupId ...

最新文章

  1. 1.5w字,30图带你彻底掌握 AQS!
  2. Python提取 Gprmax 3.0 的out文件数据
  3. python里的拼接_Python拼接字符串的7种方法总结
  4. 时下超火的在线教育移动应用UI套件设计素材
  5. 【干货】普华永道:新形势下,企业如何进行数字化转型.pdf(附下载链接)
  6. RabbitMQ修改默认端口:4369、5672、15672、25672
  7. 涨薪慢,该不该跳槽?
  8. 三点顺序(计算几何入门)
  9. 算法:258. Add Digits 各位相加
  10. 服务器内存检测维修工具,使用edac工具来检测服务器内存故障.
  11. 使用Pycharm安装numpy库
  12. window下ruby的下载与gem安装
  13. OpenFOAM-6.0 如何创建已有标量场的梯度向量场
  14. 惠普主板f1怎么关闭_惠普台式机开机按F1怎样去除
  15. C/C++实现贪吃蛇游戏
  16. [JavaScript学习记录] 首次运用于网页,做一个简易利息计算器!!!
  17. hdu多校第七场 1011 (hdu6656) Kejin Player 概率dp
  18. E. Selling Souvenirs
  19. 《信用管理》--信用评分方法之Z评分模型、ZETA评分模型
  20. Word中如何将英文双引号替换成中文双引号

热门文章

  1. 解决Could not write metadata for '/RemoteSystemsTempFiles'. D:\workspace\.metadata\.plugins\org.eclips
  2. ad采样信噪比与噪声_过采样能提高信噪比
  3. 分治法详解二维最近点对问题
  4. 关于秒杀系统设计的思考
  5. AKS算法说明与实现
  6. 如何创建 Azure AKS 集群?
  7. C++程序员应了解的那些事(116)~单引号 VS 双引号
  8. 狂神JUC——可重入锁
  9. 防城港滩浪村百亩稻田 国稻种芯·中国水稻节:广西披黄金甲
  10. linux c++ vscode 搭建流媒体服务器