class="MsoNormal">此生成二维码的类我用的是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();
????? }
?? }
}
?
?