二维码的生成
此生成二维码的类我用的是QRCode的包
下载地址:http://www.400gb.com/file/80134276
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;
publicclass TwoQrcode {
publicvoid CreateQrcode(String content, String path)//二维码储存的内容,二维码以什么形式输出
throws UnsupportedEncodingException {
//1.首先我在这里生成二维码选的一种方法是用Qrcode这个类
Qrcode qrCode = new Qrcode();// 注意是com.swetake.util.Qrcode;
//对二维码的一些设置
qrCode.setQrcodeErrorCorrect('M');// 设置纠错能力,纠错能力越高,二维码可以储存的信息就越少
qrCode.setQrcodeEncodeMode('B');// 设置编码为二进制
qrCode.setQrcodeVersion(7);// 设置版本
//2.对要储存在二维码里的信息进行处理
// 字符编码的转换
if (content.isEmpty()) {
System.out.println("传入值为空");
return;
}
//字符编码的转换是为了我们在扫描时不要出现乱码。如果项目本身就设置了是UTF-8,则此处IOS-8859-1改成UTF-8即可。
byte[] bt = new String(content.getBytes("ISO-8859-1"), "UTF-8").getBytes();// 有异常,抛出
// 3.创建图像数据的缓冲区.具有8位RGB颜色的分辨图像
BufferedImage image = new BufferedImage(140, 140,
BufferedImage.TYPE_INT_RGB);
// 创建画笔工具
Graphics2D g2D = (Graphics2D) image.getGraphics();
g2D.setBackground(Color.WHITE);// 设置背景色为白色
g2D.clearRect(0, 0, 140, 140);// 绘制矩形Rect
g2D.setColor(Color.BLACK);// 前景色为黑色
if (bt.length > 0) {// 这个方法传的值不为空时
boolean[][] s = qrCode.calQrcode(bt);
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s.length; j++) {
if (s[j][i]) {// 为真时就画,即前景色的黑点
g2D.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);
}
}
}
}
g2D.dispose();// 画笔释放
image.flush();// 将残留的数据推出缓冲区
try {
ImageIO.write(image, "jpg", new File(path));//以文件的方式输出
// ImageIO.write(image, "jpg", outputStream);//以流的形式将image二维码图像输出
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
上一篇: Maven的好处
下一篇: Vue动画事件详解及过渡动画实例