不使用pinch / UIScrollView缩小照片

时间:2013-05-05 03:06:18

标签: iphone ios objective-c image-processing crop

我正在对图像的某个部分进行处理,我正在使用以下代码,但是在imageToDoProce上检索到的图像总是放大,如果我可以缩小这张照片,我的应用程序将完成。 这张照片不会被用户看到,因此我不想使用Pinch / UIScrollView。 我只需要一种方法来缩小照片,或者有人引导我查看代码中的错误,让照片放大。 感谢

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
    [connection setVideoOrientation:AVCaptureVideoOrientationPortrait];
    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); 
    CVPixelBufferLockBaseAddress(imageBuffer,0); 
    uint8_t *baseAddress = (uint8_t *)CVPixelBufferGetBaseAddress(imageBuffer); 
    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer); 
    size_t width= CVPixelBufferGetWidth(imageBuffer);
    size_t height=CVPixelBufferGetHeight(imageBuffer);



    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef context = CGBitmapContextCreate(baseAddress, 640, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);

    CGRect rect = CGRectMake(0,200,320,48);

    CGImageRef newImage = CGBitmapContextCreateImage(context);
    UIImage *imageRef= [UIImage imageWithCGImage:CGImageCreateWithImageInRect(newImage, rect) scale:1 orientation:UIImageOrientationUp];

    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);

    CVPixelBufferUnlockBaseAddress(imageBuffer,0);



    UIImage *imageToDoProce = imageRef;

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 200, 320, 48)]; // frame is a CGRect.
    imageView.image = imageToDoProce;




   // UIImage* croppedImage = [CameraImageHelper croppedImageWithImage:imageView.image zoom:2];


   NSString*ret= [self DoProcess:imageView.image];
    //NSLog(@"obj=%@",[CameraImageHelper getSendResult]);
    NSLog(@"rec=%@",ret);

    dispatch_async(dispatch_get_main_queue(), ^{
        [[CameraImageHelper getSendResult].res1 setText:ret];
        [[CameraImageHelper getSendResult].image123 setImage:imageToDoProce] ;
    });    
}

1 个答案:

答案 0 :(得分:1)

在“CameraImageHelper”类

中将内容模式设置为image123
[image123 setContentMode:UIViewContentModeScaleAspectFit];

希望这会对你有所帮助:)。