我的代码如下。有谁知道发生了什么?
抱歉信息不完整。图像消失了!
- (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()];
}
答案 0 :(得分:3)
我没有测试过代码,但我认为它是围绕原点旋转的,所以你需要翻译,例如:
...
case UIImageOrientationUp:
CGContextRotateCTM(cgcrRotation, (180 * M_PI / 180));
CGContextTranslateCTM(ctxt, -imCropped.size.width, -imCropped.size.height);
break;
...