如何判断从相册中读取的二维码是否有效
这里涉及到从相册中选择的图片非二维码和选择的二维码ZBar无法识别两个问题。
选择的图片非二维码,默认ZBar会弹出一个No BarCode Detected的页面,如何去掉呢?
ans:ZBarReaderController类的个属性,在创建时,可以设置showsHelpOnFail = NO,则当图片非二维码时就不会弹出错误提示页了,另外可以自己handle错误处理,代码如下:
- (void)readerControllerDidFailToRead: (ZBarReaderController*)reader withRetry: (BOOL)retry
{
if(retry)
{
//retry == YES 选择图片为非二维码
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"" message:@"您选择的二维码不正确,请重新选择" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
[alert show];
if(![self.parentViewController isBeingDismissed]){
[self dismissViewControllerAnimated:YES completion:nil];
}
}
else
{//if retry is NO,must dismiss the reader before returning
[reader dismissModalViewControllerAnimated:YES];
}
}
另外,可以从这个网址下载ZBar的一个.dmg安装包,里面有网页版的使用说明,讲的挺好的,地址:http://code4app.com/ios/ZBar-Barcode-Reader/4fa23f3f06f6e7ee18000000
转载:http://kongbei888.blog.163.com/blog/static/243266132013818115351689/
//Action when user tap on button to call ZBarReaderController
- (IBAction)brownQRImageFromAlbum:(id)sender {
ZBarReaderController *reader = [ZBarReaderController new];
reader.readerDelegate = self;
reader.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // Set ZbarReaderController point to the local album
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_QRCODE
config: ZBAR_CFG_ENABLE
to: 1];
[self presentModalViewController: reader animated: YES];
}
- (void) imagePickerController: (UIImagePickerController *) picker
didFinishPickingMediaWithInfo: (NSDictionary *) info {
UIImage *imageCurrent = (UIImage*)[info objectForKey:UIImagePickerControllerOriginalImage];
self.imageViewQR.image = imageCurrent;
imageCurrent = nil;
// ADD: get the decode results
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for (symbol in results)
break;
NSLog(@"Content: %@", symbol.data);
[picker dismissModalViewControllerAnimated: NO];
}
Reference for more details: http://zbar.sourceforge.net/iphone/sdkdoc/optimizing.html
参考:http://stackoverflow.com/questions/17850942/zbar-android-scan-local-qr-or-bar-code-image
就是选择图片后,有一个系统的图片编辑界面,可以却掉吗?这个界面
怎么去掉这个界面,或者能不能自定义这个界面
imagePickerView.allowsEditing = NO; 这样就没有了
参考:http://www.devdiv.com/forum.php?mod=viewthread&tid=208637
IOS 解决zbar扫描二维码时出现中文乱码问题实例【转并加以完善】
如何判断从相册中读取的二维码是否有效
- (void)readerControllerDidFailToRead: (ZBarReaderController*)reader withRetry: (BOOL)retry
{
if(retry)
{
//retry == YES 选择图片为非二维码
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"" message:@"您选择的二维码不正确,请重新选择" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
[alert show];
if(![self.parentViewController isBeingDismissed]){
[self dismissViewControllerAnimated:YES completion:nil];
}
}
else
{//if retry is NO,must dismiss the reader before returning
[reader dismissModalViewControllerAnimated:YES];
}
}
//Action when user tap on button to call ZBarReaderController
- (IBAction)brownQRImageFromAlbum:(id)sender {
ZBarReaderController *reader = [ZBarReaderController new];
reader.readerDelegate = self;
reader.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // Set ZbarReaderController point to the local album
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_QRCODE
config: ZBAR_CFG_ENABLE
to: 1];
[self presentModalViewController: reader animated: YES];
}
- (void) imagePickerController: (UIImagePickerController *) picker
didFinishPickingMediaWithInfo: (NSDictionary *) info {
UIImage *imageCurrent = (UIImage*)[info objectForKey:UIImagePickerControllerOriginalImage];
self.imageViewQR.image = imageCurrent;
imageCurrent = nil;
// ADD: get the decode results
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for (symbol in results)
break;
NSLog(@"Content: %@", symbol.data);
[picker dismissModalViewControllerAnimated: NO];
}
Reference for more details: http://zbar.sourceforge.net/iphone/sdkdoc/optimizing.html
参考:http://stackoverflow.com/questions/17850942/zbar-android-scan-local-qr-or-bar-code-image
怎么去掉这个界面,或者能不能自定义这个界面
IOS 解决zbar扫描二维码时出现中文乱码问题实例【转并加以完善】