我目前正在获取用户拍摄照片时的图片:
这可以很好地创建一个缩放的图像,但它不包含任何EXIF数据。
有没有办法缩放图像并保留原始图像的EXIF数据?我能否从原始图像中获取EXIF数据并将其复制到缩放后的图像中?
此外,我已经搜索了许多使用“ALAssetsLibrary”的答案,但该库已被弃用。 看起来替代方案是“PhotoKit”。 它声明:
在iOS和macOS中,PhotoKit提供支持为Photos应用程序构建照片编辑扩展的类。 在iOS和tvOS中,PhotoKit还直接提供对由Photos应用程序管理的照片和视频资产的访问权限。
然而,我没有使用Photos应用程序,我的图像不来自本地照片库或iCloud,因为我只想将照片存储在我的私人应用空间中。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = info[UIImagePickerControllerOriginalImage];
// create a jpeg
NSData *jpegData = UIImageJPEGRepresentation(image, 1.0f);
// write jpeg image to file in app space
NSString *filePath =
// create file path in app space
[imageData writeToFile:filePath atomically:NO];
}
这很好用,文件以jpeg格式创建,并且保留了其EXIF数据。
现在,我想把图片缩小一点,使它变得更小一些。但是我希望保留原始UIImage中存在的某些或所有EXIF数据,并将其复制到缩放后的图像中。
目前正在缩放图像:
UIImage *scaledImage = [renderer imageWithActions:^(UIGraphicsImageRendererContext*_Nonnull myContext) {
[image drawInRect:(CGRect) {.origin = CGPointZero, .size = size}];
}];
这可以很好地创建一个缩放的图像,但它不包含任何EXIF数据。
有没有办法缩放图像并保留原始图像的EXIF数据?我能否从原始图像中获取EXIF数据并将其复制到缩放后的图像中?
此外,我已经搜索了许多使用“ALAssetsLibrary”的答案,但该库已被弃用。 看起来替代方案是“PhotoKit”。 它声明:
在iOS和macOS中,PhotoKit提供支持为Photos应用程序构建照片编辑扩展的类。 在iOS和tvOS中,PhotoKit还直接提供对由Photos应用程序管理的照片和视频资产的访问权限。
然而,我没有使用Photos应用程序,我的图像不来自本地照片库或iCloud,因为我只想将照片存储在我的私人应用空间中。