Изменение размера изображения без потери данных Exif?

Использование "UIImage+Resize.m" для получения изображения в правильной ориентации при изменении размера. Но я не хочу потерять данные Image Exif. Поэтому попытался записать данные Exif снова, как

CGImageDestinationAddImageFromSource(destination, resized, 0, imagePropertiesDictionary);

Теперь я получил данные EXIF, но изображение поворачивается на основе свойства ориентации изображения в данных Exif. Есть ли способ получить правильное изображение с измененным размером изображения без потери данных Exif?

2 ответа

Решение

Вы можете написать свойство ориентации, чтобы покрыть оригинал

[imagePropertiesDictionary setObject:[NSNumber numberWithInt:orientation] forKey:@"Orientation"];

но убедитесь, что imagePropertiesDictionary является NSMutableDictionary

//        case UIDeviceOrientationLandscapeLeft: return 1; // Top, left
//        case UIDeviceOrientationPortrait: return 6; // Right, top
//        case UIDeviceOrientationLandscapeRight: return 3; // Bottom, right
//        case UIDeviceOrientationPortraitUpsideDown: return 8; // Left, bottom

Это, конечно, зависит от того, как вы изменяете размер изображения, поддерживается ли exif или нет. В большинстве случаев изменение размера и сохранение его обратно в iPhone приводит к потере информации Exif. Возможным решением было бы получить exif-данные, а затем изменить размер изображения. затем перепишите exif обратно.

Другие вопросы по тегам