views:

58

answers:

1

My code below, anyone know what is happening?

Sorry about the incomplete information, the image just desapear!

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    UIImage *imCaptured = [info valueForKey:@"UIImagePickerControllerOriginalImage"];
    CGImageRef cgirCropped = CGImageCreateWithImageInRect(imCaptured.CGImage, CGRectMake(700.0f, 430.0f, 650.0f, 650.0f));
    UIImage *imCropped = [UIImage imageWithCGImage:cgirCropped];

    UIGraphicsBeginImageContext(imCropped.size);
    CGContextRef cgcrRotation = UIGraphicsGetCurrentContext();

    switch (imCaptured.imageOrientation) {
        case UIImageOrientationUp:
            CGContextRotateCTM(cgcrRotation, (180 * M_PI / 180));
            break;
        case UIImageOrientationDown:

            break;
        case UIImageOrientationLeft:

            break;
        case UIImageOrientationRight:
            CGContextRotateCTM(cgcrRotation, (90 * M_PI / 180));
            break;
    }
    [imCropped drawAtPoint:CGPointMake(0.0f, 0.0f)];
    [imvPreview setImage:UIGraphicsGetImageFromCurrentImageContext()];
}
+1  A: 

I haven't tested the code, but I think it rotates around the origin, so you need to translate as well, something like:

...
case UIImageOrientationUp:
        CGContextRotateCTM(cgcrRotation, (180 * M_PI / 180));
        CGContextTranslateCTM(ctxt, -imCropped.size.width, -imCropped.size.height);
        break;
...
Peter DeWeese