在iOS中将图像元数据写入JPG/PNG文件

11

有没有办法将UIImage写入JPG/PNG文件并追加元数据?我知道您可以使用:

writeImageDataToSavedPhotosAlbum:metadata:completionBlock

在已保存的照片中完成此操作,但是如何直接针对文件进行相同的操作呢?我似乎找不到任何方法来做到这一点。我知道UIImagePNGRepresentation()和UIImageJPGRepresentation()会返回NSData,您可以使用它来写入文件,但没有办法追加/替换文件中的元数据。

有任何想法吗?


3
也许这个类似问题的答案可以帮到你:https://dev59.com/HG435IYBdhLWcg3w7k6b#5294574 - Greg
1
编写自定义的PNG导出器只需三天时间,不管怎样 :) - Sulthan
你应该看一下ImageIO框架。你可以使用CGImageDestinationSetPropertiesCGImageDestination添加元数据,然后从中获取原始数据。 - Voda Ion
2个回答

3

看起来是一个重复的问题

要向UIImage添加元数据,您可以使用ImageIO框架。您可以从UIImage创建CGImageDestination对象,使用CGImageDestinationSetProperties添加元数据,然后从中获取原始数据(其中包括压缩图像和元数据)。


-7

@rekle 看看这段代码是用来将照片写入文件的

NSData *imageData = UIImagePNGRepresentation(self.imageView.image);
            NSData *myImage=[[NSData alloc]initWithData:imageData];
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0];
            NSLog(@"%@",documentsDirectory);

            NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",camtitle.text]];
            [myImage writeToFile:fullPathToFile atomically:YES];
            NSLog(@"%@",fullPathToFile);
            [myImage release

];


1
这并没有解决如何向文件添加元数据的问题。 - Juan Carlos Méndez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接