将Gif图像转换为NSData

wjh*_*wjh 10 gif nsdata ios

我的相册里有一张gif图片.当我使用它UIImagePickerController来选择该图像时,我需要将图像转换NSData为存储.

早些时候,我用过

NSData *thumbData = UIImageJPEGRepresentation(thumbnail, 0.5);
Run Code Online (Sandbox Code Playgroud)

但它不适用于gif图像.thumbData将是零.

  1. 我如何NSData从gif图像中获取?

  2. 我怎么知道它是一个需要特殊处理的gif图像?

san*_*ony 9

这里的关键是将GIF文件或URL下载直接保存到NSData中,而不是将其作为UIImage.绕过UIImage将让GIF文件保持动画.

下面是一些将GIF文件转换为NSData的代码:

NSString *filePath = [[NSBundle mainBundle] pathForResource: @"gifFileName" ofType: @"gif"];

NSData *gifData = [NSData dataWithContentsOfFile: filePath];
Run Code Online (Sandbox Code Playgroud)

但说实话,你应该考虑根本不考虑使用GIF.


小智 1

覆盖 .GIF 文件的代码可以在 NSdata 中转换 -

NSString *pathForFile = [[NSBundle mainBundle] pathForResource: @"myGif" ofType: @"gif"];

NSData *dataOfGif = [NSData dataWithContentsOfFile: pathForFile];

NSLog(@"Data: %@", dataOfGif);
Run Code Online (Sandbox Code Playgroud)