i通过使用ZBAR扫描任何条形码,此时此API扫描条形码也将扫描图像。任何人都请帮助我做到这一点...假设我在那个瓶条形码中有一个Mazza瓶子,但是特定条形码在橙色塑料上。当时我曾经扫描过任何条形码图像,ZBAR扫描带有橙色的条形码...所以我只想nget条形码除了条形码以外的任何其他部分。
- (void)viewDidLoad
{
[super viewDidLoad];
reader = [ZBarReaderViewController new];
capture = [ZBarCaptureReader new];
capture.captureDelegate = self;
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
// EXAMPLE: just grab the first barcode
break;
label.text = symbol.data;
imageView.image = [info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
[reader dismissViewControllerAnimated:YES completion:^{}];
}
zbar不为您磨削图像。它为您提供了扫描而没有修改的图像。
您可以获取裁剪图像(扫描仪视图的矩形中的图像)
- (void)imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *img = info[UIImagePickerControllerOriginalImage];
ZBarImage *cropped = [[ZBarImage alloc] initWithCGImage:img.CGImage crop:((ZBarReaderViewController*)imagePicker).scanCrop size:img.size];
//...
}