指定0

时间:2017-03-10 11:51:19

标签: java zxing

我目前正在使用ZXing Library来解码QR码。另外我用JavaFx在屏幕上显示创建的QR码。我想创建没有安静区域的QR码,所以我将边距设置为零。但是我意识到,当我创建一个具有错误校正级别L的QR码时,仍然存在一个小的静区。这是显示结果的图片。

Picture1

现在奇怪的是具有错误修正等级的QR码没有安静区域。

以下是我创建QR码的代码。

private BufferedImage QRCodeGenerator(String content, int height, int width) {
Map<EncodeHintType, Object> hintMap = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);

hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
hintMap.put(EncodeHintType.MARGIN, 0);

QRCodeWriter qrCodeWriter = new QRCodeWriter();
BufferedImage bufferedImage = null;

try {
    BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hintMap);
    bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    bufferedImage.createGraphics();

    Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics();
    graphics.setColor(Color.WHITE);
    graphics.fillRect(0, 0, width, height);
    graphics.setColor(Color.BLACK);

    for (int i = 0; i < height; i++) {
    for (int j = 0; j < width; j++) {
        if (byteMatrix.get(i, j)) {
        graphics.fillRect(i, j, 1, 1);
        }
    }
    }
} catch (WriterException e) {

}

return bufferedImage;
}

有人可以解释这种行为吗?

0 个答案:

没有答案