iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何修改iOS中的图像元数据(EXIF)而不重复?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我使用的代码可以编写更新的元数据,但会创建一个重复的图像.这是代码

if( [self.textView.text length] != 0 && ![self.userComments isEqualToString: self.textView.text])
        {
            // This code works but creates a duplicate image
            NSMutableDictionary *userCommentDictionary = [NSMutableDictionary Dictionary];
            [userCommentDictionary SETVALue:self.textView.text forKey:(NSString *)kCGImagePropertyExifUserComment];

            NSMutableDictionary *Dict = [NSMutableDictionary Dictionary];
            [Dict SETVALue:userCommentDictionary forKey:(NSString *)kCGImagePropertyExifDictionary];

            ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];

            [al writeImageToSavedPhotosAlbum:[self.imageView.image CGImage]
                                Metadata:Dict
                         completionBlock:^(NSURL *assetURL,NSError *error) {
                             if (error == nil) {
                                 NSLog(@"Image saved.");
                                 self.userComments = self.textView.text;
                             } else {
                                 NSLog(@"Error saving image.");
                             }
                         }];
        }

反正有没有避免重复?
谢谢你的时间

解决方法

正如评论中所述,我不相信这是可能的.

AssetsLibrary根本不允许修改原始资产,所有内容都保存为新资产,并引用原始资产.

使用iOS 8中的新PhotoKit库,它们允许修改资产,但我没有看到任何允许您修改元数据的内容.

看一下ImageIO,有一些方法可以修改元数据,但同样没有什么可以将它保存到照片库中.
但是,通过这种方式,您可以将磁盘上的文件替换为另一个具有已修改的exif数据的文件.

编辑精心制作:
根据答案here,似乎ALAssets提供了一个不指向磁盘的URl.我相信这意味着您无法获取图像的实际URL以覆盖它,但不会在照片库中.

我建议你把它作为Apple的增强版,如果它很重要,如果很多人要求同样的东西,他们可能会在未来添加它!看起来他们似乎不希望人们搞砸这些东西但是……

大佬总结

以上是大佬教程为你收集整理的如何修改iOS中的图像元数据(EXIF)而不重复?全部内容,希望文章能够帮你解决如何修改iOS中的图像元数据(EXIF)而不重复?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。