将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文档