【发布时间】:2020-09-29 20:00:36
【问题描述】:
我想用zxing 和Java 创建QR codes,但中间有徽标,就像whatsapp web QR code 一样。
这是我生成的简单二维码的示例。
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import javax.imageio.ImageIO;
public class Test {
public static void main(String[] args) {
int QRCODE_IMAGE_HEIGHT = 250;
int QRCODE_IMAGE_WIDTH = 250;
String IMAGE_PATH = "pictures";
QRCodeWriter qrWriter = new QRCodeWriter();
BitMatrix matrix;
try {
matrix = qrWriter.encode("qrcode qrcode qrcode qrcode", BarcodeFormat.QR_CODE, QRCODE_IMAGE_WIDTH, QRCODE_IMAGE_HEIGHT);
BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
File imageFile = new File(IMAGE_PATH, "qrcode.png");
ImageIO.write(image, "PNG", imageFile);
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结果:
但我想要这样的东西:
【问题讨论】: