将UIImage转换为NSData BUT保留为GIF文件

我有一个UIImage,它是一个GIF文件。

我需要让它成为一个NSData对象。 但它需要保留一个GIF,所以我不能使用UIImageJPEGRepresentation。

有任何想法吗?

我遇到了你提到的同样问题,这里是我用来将动画gif保存到照片而不会丢失动画的代码:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; NSData *data = [NSData dataWithContentsOfURL:[self getCurrentGIFURL]]; [library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {} 

基本上,如果您将gif从URL或文件直接保存为NSData对象而不是将其作为UIImage ,它将保留动画。

一旦它成为UIImage,它就不再是gif了。 它已被解释为核心图形图像对象,包裹在UIImage的UIKit装饰中。 你没有“是GIF”的UIImage。 它可能只有一次,但那段时间过去了。

如果你正在下载这个东西(我通过你的评论假设“我无法访问该文件”),那么你应该将它作为数据下载,并将其作为数据保存,如果你根据它创建一个UIImage数据,你可能需要保持数据。

(尽管如此,这是一个猜测,因为你正在通过滴水输出有关滴漏问题的详细信息。如果你能更大声地说出你想要完成的事情,我们可能会帮助更好。)

如果您知道文件路径,可以直接将其加载到NSData *中。 如:

 NSData *gifData = [NSData dataWithContentsOfFile:@"myCoolPic.gif"]; 

NSData dataWithContentsOfFile文档