如何解决在OSX中使用ZXing获取QRCode数据
| 我正在寻找实现一个类,该类将能够从文件(jpeg,bmp等)中读取QR码并将其信息输出为NSString。 我遇到的问题是,每个项目似乎都围绕着让iPhone用相机来完成这一任务。 我想在带有图像文件的OSX桌面上执行此操作。我曾尝试使用ZXing随附的Objective-C OSX项目,但无法使其与我自己的项目配合使用。 有没有人成功做到这一点?谢谢!解决方法
所以这就是我想出的,它似乎对我有用。
- (NSString*) movieFrameAsString:(CGImageRef)targetMovieFrame
{
@try
{
ZXCGImageLuminanceSource* luminancesource = [[ZXCGImageLuminanceSource alloc] initWithCGImage:targetMovieFrame];
ZXHybridBinarizer* binarizerInput = [[ZXHybridBinarizer alloc] init];
[binarizerInput initWithSource:luminancesource];
ZXBinaryBitmap* binarybitmapInput = [[ZXBinaryBitmap alloc] initWithBinarizer:binarizerInput];
ZXDecodeHints* decodehints = [[ZXDecodeHints alloc] init];
ZXQRCodeReader* qrcodereader = [[ZXQRCodeReader alloc] init];
ZXResult* results = [qrcodereader decode:binarybitmapInput hints:decodehints];
[luminancesource release];
[binarizerInput release];
[binarybitmapInput release];
[decodehints release];
[qrcodereader release];
return [results text];
}
@catch (ZXReaderException* rex)
{
if (![rex.reason isEqualToString:@\"Could not find three finder patterns\"])
{
//NSLog(@\"failed to decode,caught ReaderException \'%@\'\",rex.reason);
}
}
@catch (ZXIllegalArgumentException* iex)
{
//NSLog(@\"failed to decode,caught IllegalArgumentException \'%@\'\",iex.reason);
}
@catch (id ue)
{
//NSLog(@\"Caught unknown exception: %@\",ue);
}
return 0;
}
引入了targetMovieFrame,它通过过滤器的混合物运行它以生成二进制图像。它通过使用提示对图像进行解码并使用QRCodeReader对象中包含的方法来产生结果。然后,我返回结果,这是一个NSString。其他所有内容只是被捕获并返回的异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。