ios-zbar scanview 根据扫描区域切割图片

在scanview中添加扫描区域

ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;
    //CGRect frame= CGRectMake(20, 30, 320, 260);
    reader.scanCrop= CGRectMake(0.2, .1, .47, .8);  

自定义scanview添加一个自定义的扫描框

- (UIView *)setOverlayPickerView{
    UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [v setBackgroundColor:[UIColor clearColor]];
    UILabel *scanningLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 50, 120, 30)];
    [scanningLabel setBackgroundColor:[UIColor clearColor]];
	[scanningLabel setFont:[UIFont fontWithName:@"Courier" size: 18.0]];
	[scanningLabel setTextColor:[UIColor redColor]];
	[scanningLabel setText:@"Scanning..."];
    [scanningLabel setHidden:NO];
	[v addSubview:scanningLabel];
    
    UIImageView *overlayImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"overlaygraphic.png"]];
    [overlayImageView setFrame:CGRectMake(30, 100, 260, 200)];
    [v addSubview:overlayImageView];
    UIToolbar *myToolBar = [[UIToolbar alloc] init];
    UIBarButtonItem *backButton=[[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissOverlayView:)];
    UISwitch *sw=[[UISwitch alloc] init];
    [sw setOn:NO];
    UIBarButtonItem *switchButton=[[UIBarButtonItem alloc] initWithCustomView:sw];
    UIBarButtonItem *fixed=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    [sw addTarget:self action:@selector(handleSwitchFlash:) forControlEvents:UIControlEventValueChanged];
    [myToolBar setItems:[NSArray arrayWithObjects:backButton,fixed,switchButton,nil]];
    [myToolBar setBarStyle:UIBarStyleDefault];
    CGRect toolBarFrame;
    toolBarFrame = CGRectMake(0, 436, 320, 44);
    [myToolBar setFrame:toolBarFrame];
    [v addSubview:myToolBar];
    return  v;
}

切割图片

// EXAMPLE: do something useful with the barcode image
    
    UIImage *largeImage=[info objectForKey: UIImagePickerControllerOriginalImage];
    
    //UIImage * PortraitImage = [[UIImage alloc] initWithCGImage: largeImage.CGImage
    //                                                     scale: 1.0
    //                                               orientation: UIImageOrientationLeft];
    UIImage * PortraitImage=[largeImage imageRotatedByDegrees:90];
    
    //CGRectMake(0.2, .1, .47, .8);
    float w=largeImage.size.width;
    float h=largeImage.size.height;
    NSLog(@"====largeimagesize:h=%f,w=%f",largeImage.size.height,largeImage.size.width);
    NSLog(@"====PortraitImage:h=%f,w=%f",PortraitImage.size.height,PortraitImage.size.width);
    CGImageRef imageRef = CGImageCreateWithImageInRect([PortraitImage CGImage], CGRectMake(w*.25, h*.2, w*.8, h*.27));
    
    
    // or use the UIImage wherever you like
    [self.scanImageView setImage:[UIImage imageWithCGImage:imageRef]];

  

  

posted @ 2012-12-07 12:20  阿新  阅读(3916)  评论(2编辑  收藏  举报