在不丢失 Exif 数据的情况下调整图像大小?
Posted
技术标签:
【中文标题】在不丢失 Exif 数据的情况下调整图像大小?【英文标题】:Image Resizing without losing Exif Data? 【发布时间】:2013-06-27 07:26:03 【问题描述】:调整大小时使用“UIImage+Resize.m”获取正确方向的图像。但我不想丢失 Image Exif 数据。于是尝试再次像
那样写Exif数据CGImageDestinationAddImageFromSource(destination, resized, 0, imagePropertiesDictionary);
现在我得到了 exif 数据,但图像会根据 Exif 数据中图像的方向属性进行旋转。 有什么方法可以在不丢失 Exif 数据的情况下获得适当的图像调整大小的图像?
【问题讨论】:
【参考方案1】:这当然取决于您如何调整 exif 维护的图像大小。在大多数情况下,调整大小并将其保存回 iPhone 会导致 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 数据的情况下调整图像大小?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不丢失现有数据的情况下调整 std::vector 的大小?
如何在不丢失 exif 数据的情况下将 UIImage 转换为 JPEG?