Ios 条形码阅读器在我将其放置在实时对象上时未检测到
我正在使用此代码检测条形码。代码是Ios 条形码阅读器在我将其放置在实时对象上时未检测到,ios,xcode,zbar-sdk,Ios,Xcode,Zbar Sdk,我正在使用此代码检测条形码。代码是 - (IBAction) scanButtonTapped { NSLog(@"TBD: scan barcode here..."); // ADD: present a barcode reader that scans from the camera feed ZBarReaderViewController *reader = [ZBarReaderViewController new]; reader.readerDelega
- (IBAction) scanButtonTapped
{
NSLog(@"TBD: scan barcode here...");
// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
// present and release the controller
[self presentModalViewController: reader
animated: YES];
[reader release];
}
- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
{
// ADD: get the decode results
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
// EXAMPLE: just grab the first barcode
break;
// EXAMPLE: do something useful with the barcode data
resultText.text = symbol.data;
// EXAMPLE: do something useful with the barcode image
resultImage.image =
[info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
[reader dismissViewControllerAnimated:YES completion:nil];
}
-(iAction)扫描按钮已标记
{
NSLog(@“待定:在此扫描条形码…”);
//添加:提供一个条形码读取器,可从摄像头提要进行扫描
ZBarReaderViewController*读卡器=[ZBarReaderViewController新建];
reader.readerDelegate=self;
reader.supportedOrientationMask=zBaroOrientationMaskall;
ZBarImageScanner*scanner=reader.scanner;
//TODO:(可选)此处的附加读卡器配置
//示例:禁用很少使用的I2/5以提高性能
[扫描仪设置符号:ZBAR_I25]
配置:ZBAR_CFG_启用
至:0];
//显示并释放控制器
[自我呈现模式控制器:读卡器
动画:是];
[读者发布];
}
-(无效)imagePickerController:(UIImagePickerController*)读卡器
didFinishPickingMediaWithInfo:(NSDictionary*)信息
{
//添加:获取解码结果
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
//示例:只需抓取第一个条形码
打破
//示例:对条形码数据执行一些有用的操作
resultText.text=symbol.data;
//示例:对条形码图像执行一些有用的操作
结果图像=
[info objectForKey:UIImagePickerControllerOriginalImage];
//添加:关闭控制器(注意从*读卡器*!)
[reader DismissViewControllerInitiated:YES completion:nil];
}
这些都很好用,但是如果我把我的iPodtouch相机放在真实的条形码上,比如lays packet,iPhone手机壳。。。它不是检测。请告诉我如何解决这个问题。提前谢谢。任何想法都将不胜感激。如果我的问题不清楚,请告诉我。可能是您写的方式,但听起来您好像是在物理上将ipod touch放在数据包上。是这样吗?我已经编辑了我的问题并粘贴了所有的代码。在我启动iPod摄像头后,我已经放置了一个标签。请您设置正确的条形码类型,因为ZBar可以设置为检测不同类型的条形码,例如我们有代码-39、代码-128等。您如何扫描条形码。您是从远离条形码的摄像机开始的,还是从指向条形码的摄像机开始的?在条形码处启动摄像头可能会导致扫描仪继续扫描。