0

我正在使用此处找到的 QRCode api

我通过 Api 成功实现了 QRCode 生成,但结果是这样的

在此处输入图像描述

(为了问我的问题,我将颜色从白色更改为黄色)

所以,现在如果你看到你发现外边界很厚,我希望它变薄..像这样

在此处输入图像描述

我用来生成二维码和改变颜色的代码是这样的

public boolean writeImage(String qrMessageForGeneratingQRCode,String filename){

    boolean result = false;

    try{
        int length = 200;
        int breadth = 200;
        BufferedImage originalQRCodeBufferedImage = ImageIO.read(new ByteArrayInputStream(QRCode.from(qrMessageForGeneratingQRCode).withSize(length,breadth).stream().toByteArray()));
        BufferedImage changedQRCodeBufferedImage = new ColorChanger().changeColor(originalQRCodeBufferedImage, Color.WHITE, new Color(255,202,0));
        ImageIO.write(changedQRCodeBufferedImage,FilesUtil.getProperty("QR_CODE_IMAGE_FORMAT") , new File(filename));
        result = true;
    }catch(Exception ex){
        ex.printStackTrace();
        result = false;
    }

    return result;
}

请阐明我如何使用代码来实现这一点....在此先感谢.... Ankur

4

2 回答 2

2

二维码周围的静区需要为 4 个模块。你不想减少这个。您提议的图像将更难扫描。

事后您始终可以通过简单的裁剪来编辑 BufferedImage:

BufferedImage crop = original.getSubimage(50, 50, original.getWidth() - 2*50, original.getHeight() - 2*50);

顺便说一句,您应该将解决方案中使用的底层 zxing 库更新到至少 2.0,可能是 2.1-SNAPSHOT。1.7 太旧了。

于 2012-08-09T07:55:09.360 回答
0

明显的答案是减少lengthbreadth值。你试过吗?

于 2012-08-09T07:20:23.617 回答