【发布时间】:2014-11-27 22:17:09
【问题描述】:
我正在使用 CIFilter 提供的 CIQRCodeGenerator 过滤器生成 QR 码图像。图像生成良好,当它显示时,我可以使用 AVCaptureSession 读取图像。但是,当我尝试使用不同的平台(Android、BlackBerry、iOS 6)扫描 QR 码时,它无法识别图像。根据 Apple 的文档,生成的图像符合 ISO/IEC 18004:2006 标准。问题是我需要符合 ISO 18004:2000 的东西吗?
这是我用来生成图像的代码:
NSData *stringData = [stringToEncode dataUsingEncoding:NSISOLatin1StringEncoding];
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[qrFilter setValue:stringData forKey:@"inputMessage"];
[qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"];
CIImage *qrImage = qrFilter.outputImage;
return [UIImage squareUIImageFromCIImage:qrImage withSize:size];
这是一个示例二维码:
有人知道是否有办法使用 CIFilter 生成更普遍认可的 QR 码图像吗?我真的不想再使用 ZXing。
谢谢!
【问题讨论】:
-
二维码就是二维码……这是标准。
-
@ceejayoz 这是一个标准,但不同的文档涵盖了不同的实现。 ISO/IEC 18004:2000 定义了二维码模型 1 和 2。ISO/IEC 18004:2006 定义了二维码 2005 符号,二维码模型 2 的扩展(取自en.wikipedia.org/wiki/QR_code)。