1
zj
2025-06-20 079e004fd2e65357aecc725a7be3cfe109978b0d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package kernel.service;
 
import java.io.File;
import java.util.HashMap;
import java.util.Map;
 
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
 
import util.DateUtil;
import util.RandomUtil;
 
public class TwoDimensionCodeContentServiceImpl implements TwoDimensionCodeContentService {
    
    private String imgPath;
    
    @Override
    public String encoder(String content) {
        String imagename = "/" + DateUtil.getToday("yyMMddHHmmss") + RandomUtil.getRandomNum(8) + ".png"; // 生成二维码图片相对
                                                                                                          // 地址和名称
        String pathname = imgPath + imagename; // 生成二维码图片存放的地址和名称
 
        File file = new File(pathname);
        int width = 691; // 图像宽度
        int height = 691; // 图像高度
        String format = "png";// 图像类型
        Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        BitMatrix bitMatrix;
        try {
            bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            MatrixToImageWriter.writeToFile(bitMatrix, format, file);// 输出图像
        } catch (Exception e) {
 
            e.printStackTrace();
        } // 生成矩阵
 
        return imagename;
    }
 
    public void setImgPath(String imgPath) {
        this.imgPath = imgPath;
    }
}