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)而不重复?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)