Java生成二维码
来源:互联网 发布:linux基础知识总结 编辑:程序博客网 时间:2024/04/30 15:12
为了庆祝明天和这不成器的好产品,写上这Java生成的二维码!这里生成的二维码所使用的jar是为qrcode!具体资源的下载路径:http://download.csdn.net/download/luo201227/7130951(包含了代码和jar包),好啦。直接上代码:
一、[编码]
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;/** * @Description: 编码器 * * @ClassName: QRCodeEncoderHandler * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-2-11 下午01:57:47 * @version V2.0 */public class QRCodeEncoderHandler { /** * @Description: 生成二维码(QRCode)图片 * * @param content 二维码内容 * @param imgPath 二维码存放路径 * * @Title: QRCodeEncoderHandler.java * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-2-11 下午03:54:18 * @version V1.0 * @throws Exception */ public void encoderQRCode(String content, String imgPath) throws Exception { // 处理异常 try { // 实例化对象 Qrcode qrcodeHandler = new Qrcode(); // 设置 qrcodeHandler.setQrcodeErrorCorrect('M'); qrcodeHandler.setQrcodeEncodeMode('B'); qrcodeHandler.setQrcodeVersion(7); // 二维码内容转换 byte[] contentBytes = content.getBytes("gb2312"); // 实例化对象 BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB); // 创建 Graphics2D gs = bufImg.createGraphics(); // 设置 gs.setBackground(Color.WHITE); 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]) { gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); } } } } else { throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. "); } gs.dispose(); bufImg.flush(); // 二维码文件对象 File imgFile = new File(imgPath); // 判断是否存在 if(!imgFile.exists()){ // 不存在,先进行创建 imgFile.mkdirs(); } // 生成二维码QRCode图片 ImageIO.write(bufImg, "png", imgFile); } catch (Exception e) { throw new Exception("Error:" + e.getMessage()); } }}
二、[解码]
import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import jp.sourceforge.qrcode.QRCodeDecoder;import jp.sourceforge.qrcode.data.QRCodeImage;/** * @Description: 解码器 * * @ClassName: QRCodeDecoderHandler * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-2-11 下午02:51:55 * @version V1.0 */public class QRCodeDecoderHandler { /** * @Description: 解码二维码 * * @param imgPath 二维码图片文件路径 * @return 解码内容 * * @Title: QRCodeDecoderHandler.java * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-2-11 下午03:44:04 * @version V1.0 * @throws Exception */ public String decoderQRCode(String imgPath) throws Exception { // QRCode 二维码图片的文件 File imageFile = new File(imgPath); // 声明对象 BufferedImage bufImg = null; // 声明变量 String decodedData = null; // 处理异常 try { // 获取对象 bufImg = ImageIO.read(imageFile); // 实例化对象 QRCodeDecoder decoder = new QRCodeDecoder(); // 解码 decodedData = new String(decoder.decode(new J2SEImage(bufImg))); } catch (Exception e) { // 抛出异常 throw new Exception("Error: " + e.getMessage()); } // 返回 return decodedData; } class J2SEImage implements QRCodeImage { BufferedImage bufImg; public J2SEImage(BufferedImage bufImg) { this.bufImg = bufImg; } public int getWidth() { return bufImg.getWidth(); } public int getHeight() { return bufImg.getHeight(); } public int getPixel(int x, int y) { return bufImg.getRGB(x, y); } } }
关键代码已贴上!至于怎么调用就不用我说了吧!
想看看效果吗?不好意思,不贴图,如果觉得神奇就拿起扫描的扫起来吧!
16 0
- java二维码 生成二维码
- Java生成二维码解析二维码
- java 生成二维码,解析二维码
- Java生成PDF417二维码
- Java 生成二维码
- java生成二维码
- java生成二维码
- java生成二维码
- JAVA 生成二维码 代码
- Java 生成二维码
- java 二维码生成
- java二维码生成
- JAVA生成解析二维码
- Java 生成二维码
- java 生成二维码
- java生成二维码
- Java生成二维码
- java生成二维码图片
- 三星手机丢失了数据怎么找回
- 编程规范---如何写出无法维护的代码
- android中Http访问时 connection.getResponseCode()不被执行
- java读取http请求中的body
- 判断SQL数据库是否存在表,是否存在记录
- Java生成二维码
- opencv载入图片,并得到行列值
- Magento 常用技巧与方法
- git恢复删除的分支
- MySQL 模拟条件索引
- SVN不能读取日志
- Phoenix实战(hadoop2、hbase0.96)
- 测试环境redis数据库的使用
- CPU使用率统计