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

Coc*_*ica 3 iphone cocoa-touch objective-c nsdata ios

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

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

有任何想法吗?

Dan*_*Ray 15

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

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

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


Chi*_*tel 9

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

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

NSData *data = [NSData dataWithContentsOfURL:[self getCurrentGIFURL]];

[library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}
Run Code Online (Sandbox Code Playgroud)

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