我正在使用ZXingObjC库的最新版本(3.2.1)在iOS应用程序中生成QR和Aztec条形码。我正在使用与库的“编码”示例相同的代码,即:
NSError *error = nil;
ZXMultiFormatWriter *writer = [ZXMultiFormatWriter writer];
ZXBitMatrix* result = [writer encode:@"A string to encode"
format:kBarcodeFormatQRCode
width:200
height:200
error:&error];
CGImageRef imageRef = [[ZXImage imageWithMatrix:result] cgimage];
UIImage *image = [UIImage imageWithCGImage:imageRef];
myImageView.image = image;
但是,我发现使用上述代码在UIImageView
中呈现的条形码在从黑色块转换为白色块时会包含一些模糊/抖动。这是不合需要的,并且可能在扫描速度最优先的环境中影响扫描速度。以下是放大条形码以使问题更加明显的示例:
问题:在我的iOS应用程序中生成/渲染条形码时,我还能做些什么来避免这种模糊/抖动?
请注意,我已将UIImageView
的内容模式指定为中心(UIViewContentModeCenter),以便它不会缩放所包含的图像,因此我无法想象{{1}导致模糊/抖动。
暂且不说:我在Android应用程序中使用等效的UIImageView
库,而我不在那里看到同样的问题。请参阅Android应用程序中放大下面条形码的屏幕截图:
答案 0 :(得分:0)
在其他几个设备(iPhone 5s和iPhone 7)上测试后,我意识到这是iPhone 6+特有的问题。事实证明,"物理" iPhone 6+的分辨率(1080 x 1920像素)小于"虚拟"分辨率(1242 x 2208像素)(见here)因此iPhone 6+对显示器进行了一些下采样,这就是造成模糊/抖动的原因。可悲的是,我不认为有什么可以做的...除非有人有任何建议吗?