2017-04-27 19 views
0

我使用ZXingObjC库的最新版本(3.2.1)在iOS应用程序中生成QR和阿兹台克人条码。我这样做使用图书馆的“编码”的例子代码相同,即:编码的QR和阿兹台克人条码包含模糊/抖动

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 barcode screenshot zoomed in

问:有什么附加的生成/渲染条形码在我的iOS应用程序,以避免这种模糊的时候,我可以做/抖动??

注意,我指定我UIImageView的内容模式为中心(UIViewContentModeCenter),因此它不适合所包含的图像,因此我无法想象的UIImageView导致模糊/抖动。

另外:我在Android应用程序中使用等效的com.google.zxing:core:3.3.0库,我在而不是看到同样的问题。从Android应用程序下方的条形码的截图中看到缩放:

Android barcode screenshot zoomed in

回答

0

测试此一对夫妇的其他设备(iPhone 5S和iPhone 7)之后,我来实现,这是一个问题特定于iPhone 6+。事实证明,iPhone 6+的“物理”分辨率(1080 x 1920像素)小于“虚拟”分辨率(1242 x 2208像素)(请参阅here),因此iPhone 6+会对显示屏进行一些下采样,这是造成模糊/抖动的原因。可悲的是,我不认为有什么可以做到这一点...除非任何人有任何建议?