При использовании передней камеры iPhone 4, чтобы сделать снимок, сделанное изображение зеркально по сравнению с тем, что вы видите на экране iPhone. Как я могу восстановить "экранное" представление UIImage (а не UIImageView) и сохранить его таким образом?
Я пробовал:
UIImage* transformedImage = [UIImage imageWithCGImage:pickedImage.CGImage scale:1.0 orientation:UIImageOrientationLeftMirrored];
UIImageWriteToSavedPhotosAlbum (transformedImage, self, @selector(photoSaved:didFinishSavingWithError:contextInfo:), nil);
затем поместив его на экран. Это почти то же самое, что и на экране, но сохраненное изображение искажено.
Итак... Как я могу восстановить представление "на экране" UIImage (а не UIImageView) и сохранить его таким образом?
Я также пробовал так:
UIImage* pickedImage = [[info objectForKey:UIImagePickerControllerOriginalImage] retain];
UIImage* transformedImage;
CGSize imageSize = pickedImage.size;
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 1.0);
GContextRef ctx = UIGraphicsGetCurrentContext();
CGContextRotateCTM(ctx, 3.14); // rotate by 180°
CGContextScaleCTM(ctx, 1.0, -1.0); // flip vertical
CGContextDrawImage(ctx, CGRectMake(0.0, 0.0, imageSize.width, imageSize.height), pickedImage.CGImage);
transformedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Но это просто дает черное изображение.