【问题标题】:zxing generate QR code with logo in center just like whatsapp web QR codezxing 生成带有徽标的 QR 码,就像 whatsapp 网络 QR 码一样
【发布时间】:2020-09-29 20:00:36
【问题描述】:

我想用zxingJava 创建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();
        }
        

    }
    
    
}

结果:

但我想要这样的东西:

【问题讨论】:

    标签: java qr-code zxing


    【解决方案1】:
    1. 所有二维码都有修正位之类的东西。因此,如果您将一小部分二维码隐藏起来,它仍然可以工作。您可以覆盖多少取决于二维码的大小和校正位的数量。
    2. 您可以生成 qr 代码(具有更大的校正位),例如 bmp 图像。然后,您可以从某个地方获取您的徽标/图像,并将您的图像放在 qr 图像上。

    https://stackoverflow.com/a/35104430

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 2019-05-25
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      相关资源
      最近更新 更多