package org.asyware.group.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class QrcodeUtil {
private static final int QRCOLOR = 0xFF000000; // 默认是黑色
private static final int BGWHITE = 0xFFFFFFFF; // 背景颜色
/**
* 生成带logo的二维码图片
* @param qrUrl 要写入的url地址
* @param productName 要写于的文字
* @param filename 生成图片的地址 在static/images/xxx.png 与productName对应存入数据库
*/
public static String getLogoQRCode(String qrUrl, String productName,String logoPath) {
String filename =productName + new Date().getTime() + ".png";
// filePath是二维码logo的路径,但是实际中我们是放在项目的某个路径下面的
File filePath = new File("D:\\images\\1.png");
String content = qrUrl;
try{
QrcodeUtil qr = new QrcodeUtil();
//绘制生成二维码图片 bim生成出的二维码图片
BufferedImage bim = qr.getQR_CODEBufferedImage(content, BarcodeFormat.QR_CODE, 400, 400,
qr.getDecodeHintType());
//绘制生成带有logo与文字的二维码图片 new LogoConfig()为logo的参数设置
return qr.addLogo_QRCode(bim, filePath, new LogoConfig(), productName, filename);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 生成二维码bufferedImage图片
* @param content 编码内容
* @param barcode
QrcodeUtil
最新推荐文章于 2023-07-14 10:09:56 发布