UIImagePNGRпредставление ..... writeToFile всегда в альбомной ориентации - PullRequest
4 голосов
/ 15 июня 2011

Каждый раз, когда я использую камеру, чтобы сделать фотографию, а затем сохранить ее, изображение всегда в альбомной ориентации. Это означает, что UIImageView в моем Xib - неправильный путь. Его портрет - это то, чего я хочу и ожидал. Я могу исправить это, повернув изображение на 90 градусов, но даже тогда я не могу отключить анимацию, которая показывает исходную пейзажную фотографию, а затем сам анимированный поворот. Как я могу убедиться, что UIImageView с камеры фактически находится в портретном режиме при сохранении, а не в альбомной ориентации, и как я могу отключить анимацию во время CGAffineTranformationMakeRotation ??

1 Ответ

2 голосов
/ 15 июня 2011

Я нашел этот пост очень полезным, он описывает добавление категории в UIImage для поворота изображения перед его сохранением:

http://www.platinumball.net/blog/2009/03/30/iphone-uiimage-rotation-and-mirroring/

И затем один разкатегория реализована, вы бы сделали что-то вроде этого:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
    UIImage *originalImage, *editedImage, *rotatedImage;

    editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage];
    originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage];

    if (editedImage) 
    {
        rotatedImage = [editedImage rotate:UIImageOrientationRight];
    } 
    else 
    {
        rotatedImage = [originalImage rotate:UIImageOrientationRight];
    }

    NSString *f = @"/set/this/to/your/file/name"; 
    [UIImagePNGRepresentation(rotatedImage) writeToFile:f atomically:YES];

    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    [picker release];
}
...