iOS: изображение поворачивается на 90 градусов после сохранения в виде данных представления PNG

Я достаточно исследовал, чтобы заставить это работать, но не смог это исправить. После съемки с камеры, пока у меня есть изображение, сохраненное как UIImage, все в порядке, но как только я сохранил это изображение как представление PNG, оно повернулось на 90 градусов.

Ниже приведен мой код и все, что я пробовал:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
    NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType];

    if([mediaType isEqualToString:(NSString*)kUTTypeImage]) 
    {
        AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        delegate.originalPhoto  = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
        NSLog(@"Saving photo");
        [self saveImage];
        NSLog(@"Fixing orientation");
        delegate.fixOrientationPhoto  = [self fixOrientation:[UIImage imageWithContentsOfFile:[delegate filePath:imageName]]];      
        NSLog(@"Scaling photo");
        delegate.scaledAndRotatedPhoto  =  [self scaleAndRotateImage:[UIImage imageWithContentsOfFile:[delegate filePath:imageName]]];
    }
    [picker dismissModalViewControllerAnimated:YES];
    [picker release];
}


- (void)saveImage
{
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    NSData *imageData = UIImagePNGRepresentation(delegate.originalPhoto);
    [imageData writeToFile:[delegate filePath:imageName] atomically:YES];
}

Здесь функции fixOrientation и scaleAndRotateImage взяты из здесь и здесь соответственно. Они отлично работают и поворачивают изображение, когда я применяю их к UIImage, но не работают, если я сохраняю изображение как представление PNG и применяю их.

Пожалуйста, посмотрите на следующую картинку после выполнения вышеуказанных функций:

The first photo is original, second is saved, and third and fourth after applying fixorientation and scaleandrotate functions on saved image

38
задан Community 23 May 2017 в 10:31
поделиться