发出旋转UIImage

时间:2010-10-06 20:32:36

标签: iphone objective-c uiimage rotation

我的代码如下。有谁知道发生了什么?

抱歉信息不完整。图像消失了!

- (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 个答案:

答案 0 :(得分:3)

我没有测试过代码,但我认为它是围绕原点旋转的,所以你需要翻译,例如:

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