首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zxing qrcode安静

zxing qrcode安静
EN

Stack Overflow用户
提问于 2013-02-01 11:40:07
回答 1查看 495关注 0票数 0

我目前正在使用ZXing-1.6.我在使用QRCodeWriter类中的这部分代码时遇到了一些问题

代码语言:javascript
复制
private static BitMatrix renderResult(QRCode code, int width, int height) {
ByteMatrix input = code.getMatrix();
int inputWidth = input.getWidth();
int inputHeight = input.getHeight();
int qrWidth = inputWidth + (QUIET_ZONE_SIZE << 1);
int qrHeight = inputHeight + (QUIET_ZONE_SIZE << 1);
int outputWidth = Math.max(width, qrWidth);
int outputHeight = Math.max(height, qrHeight);

int multiple = Math.min(outputWidth / qrWidth, outputHeight / qrHeight);
// Padding includes both the quiet zone and the extra white pixels to accommodate the requested
// dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.
// If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will
// handle all the padding from 100x100 (the actual QR) up to 200x160.
int leftPadding = (outputWidth - (inputWidth * multiple)) / 2;
int topPadding = (outputHeight - (inputHeight * multiple)) / 2;

BitMatrix output = new BitMatrix(outputWidth, outputHeight);

for (int inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {
  // Write the contents of this row of the barcode
  for (int inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {
    if (input.get(inputX, inputY) == 1) {
      output.setRegion(outputX, outputY, multiple, multiple);
    }
  }
}

return output;

}

问题是,当我得到大小为60x60的数据矩阵,输出矩阵应该为100X100的时候,我得到了很多空格+静默区,我猜你是在使用int变量操作,因为不可能有一个像3.23这样的数据矩阵节点大小,它应该是整数。你能不能帮我猜一下,或者给我指个已经讨论过的地方。

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 16:46:09

已在邮件列表中回复--这是一个非常旧的版本,请使用较新的版本。是的,有一个最小的边界,并且模块的大小必须是像素的整数倍。这可以使它比平时更小。这是正常的;否则图像会失真。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14639340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档