Java二维码编写
2015-09-10 10:07
567 查看
public class QRCodeEncoderHandler {
public void encoderQRCode(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 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 = 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 {
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();
}
}
public static void main(String[] args) {
String imgPath = "D:/QRCode.png";
String content = "熊佳佳的技术博客 http://xiongjiajia.iteye.com/";
QRCodeEncoderHandler handler = new QRCodeEncoderHandler();
handler.encoderQRCode(content, imgPath);
System.out.println("encoder QRcode success");
}
}
public void encoderQRCode(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 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 = 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 {
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();
}
}
public static void main(String[] args) {
String imgPath = "D:/QRCode.png";
String content = "熊佳佳的技术博客 http://xiongjiajia.iteye.com/";
QRCodeEncoderHandler handler = new QRCodeEncoderHandler();
handler.encoderQRCode(content, imgPath);
System.out.println("encoder QRcode success");
}
}
相关文章推荐
- 学习Java 23种设计模式详解笔记之创建型模式(一)
- eclipse导入java和android sdk源码,帮助文档
- Java猴子吃桃解析
- Ehcache 整合Spring 使用页面、对象缓存
- eclipse-解决直接在eclipse中复制,粘贴动态web项目并运行后,项目名字还是原来名字的问题
- java设计模式学习笔记--外观模式
- JDK动态代理
- java的System.getProperty()方法可以获取的值
- javaMail接收邮件
- java logger
- 浅谈Javase内存流程图
- 利用Java自带的MD5加密
- jdk安装和配置及maven安装和配置
- eclipse修改项目树的字体大小
- 像写SQL一样编写Java数据应用-TinySqlDsl
- 一个Maven工程中,不同的模块需要不同的JDK进行编译
- javaMail发送邮件
- 图形化插件对Eclipse的版本要求
- Tiny对JDK有什么要求么?
- [置顶]java web 编程学习总结