来自图像ZBAR的扫描条形码



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];
    //...
}

最新更新