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 hints = new HashMap(); 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; } }