Изменение размера изображения без потери данных 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 обратно.