我的代码目前正在使用什么:
我从照片库中选择了JPG或PNG(使用标准的ImagePicker方法),并使用以下方法将该图像转换为NSData:
self.myImageData = UIImageJPEGRepresentation(myImage, 0.9);
Run Code Online (Sandbox Code Playgroud)
然后我使用multipart/form-data将其发布到服务器.
我现在想要为GIF做同样的事情,同时保留原始的GIF数据(以便动画GIF进入图书馆,恢复出来仍然是动画).
在didFinishPickingMediaWithInfo中,我可以使用原始GIF的URL
self.myGIFURL = [info objectForKey:UIImagePickerControllerReferenceURL].
Run Code Online (Sandbox Code Playgroud)
这是一个可能让我得到的例子:
资产库://asset/asset.GIF ID = 1000000034&EXT = GIF
以下是我现在尝试将此GIF推送到NSData的两种方法,每次myImageData显示(null).
我试过使用initWithContentsOfURL:
NSData *dataFromGIFURL = [[NSData alloc] initWithContentsOfURL: myGIFURL];
self.myImageData = dataFromGIFURL;
[dataFromGIFURL release];
Run Code Online (Sandbox Code Playgroud)
然后我尝试将NSURL转换为initWithContentsOfFile的字符串:
NSString *stringFromURL = [NSString stringWithFormat:@"%@", myGIFURL];
NSData *dataFromGIFURL = [[NSData alloc] initWithContentsOfFile: stringFromURL];
self.myImageData = dataFromGIFURL;
[dataFromGIFURL release];
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
我从网络服务收到动画gif网址.
如何将gif图像保存到相册?
我所做的是下载数据并将其转换为UIImage使用类别帮助程序
UIImage* gifImage = [UIImage animatedImageWithAnimatedGIFURL:[NSURL
URLWithString:self.resultImageUrl]];
Run Code Online (Sandbox Code Playgroud)
然后保存它使用
writeImageToSavedPhotosAlbum
Run Code Online (Sandbox Code Playgroud)
但图像保存为第一帧.
所以我想尝试直接保存NSData使用
writeImageDataToSavedPhotosAlbum
Run Code Online (Sandbox Code Playgroud)
但我找不到任何关于图像元数据放置的文档,因此相册会知道它的gif文件.
最重要的是,我希望gif文件在用户相册中可见,当他使用电子邮件客户端发送它时,它会将其作为gif动画发送而不仅仅是第一帧
请指教,谢谢