- package Test;
- importjava.awt.Color;
- importjava.awt.Graphics2D;
- importjava.awt.image.BufferedImage;
- importjava.io.File;
- importjavax.imageio.ImageIO;
- importcom.swetake.util.Qrcode;
- public class ErWeiMa{
- /**
- * 生成二维码(QRCode)图片
- * @paramcontent
- * @paramimgPath
- */
- public voidencoderQRCode(String content, String imgPath) {
- try {
- Qrcode qrcodeHandler =newQrcode();
- qrcodeHandler.setQrcodeErrorCorrect('M');
- qrcodeHandler.setQrcodeEncodeMode('B');
- qrcodeHandler.setQrcodeVersion(7);
- System.out.println(content);
- byte[]contentBytes = content.getBytes("UTF-8");
- BufferedImage bufImg =newBufferedImage(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 {
- System.err.println("QRCodecontent bytes length = "
- + contentBytes.length + "not in [ 0,120 ]. ");
- }
- gs.dispose();
- bufImg.flush();
- File imgFile = newFile(imgPath);
- // 生成二维码QRCode图片
- ImageIO.write(bufImg, "png",imgFile);
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * @param argsthe command line arguments
- */
- public static voidmain(String[] args) {
- String imgPath = "D:/EWM/ewm.png";
- String content = "";
- ErWeiMa handler = newErWeiMa();
- handler.encoderQRCode(content,imgPath);
- System.out.println("encoderQRcode success");
- }
- }
Java 生成二维码
最新推荐文章于 2024-05-21 16:53:28 发布