如何将 GIF 保存到我的相册?
Posted
技术标签:
【中文标题】如何将 GIF 保存到我的相册?【英文标题】:How do I save a gif to my photo album? 【发布时间】:2013-02-26 00:35:05 【问题描述】:我尝试使用 UIImageWriteToSavedPhotosAlbum 和 ALAssetsLibrary 将我的 gif 保存到相册。但是当我尝试通过电子邮件发送 gif 时,它没有动画。我很确定元数据在保存时会丢失。有谁知道我如何保存 gif 元数据?
谢谢
【问题讨论】:
ios 系统组件本身不支持动画 GIF。 UIImage 特别不支持动画 GIF。 但是,您可以将从网络或 mail.app 获取的 gif 文件保存到相册中 当然,它不会“动画”到图库中,但您可以在ALAssetsLibrary,当您通过电子邮件发送它们时它们会再次动画。 元数据是可选的。也就是说,在 gif 中不需要。 【参考方案1】:一个很老的问题,但它可能对某人有帮助!
我使用此代码将 GIF 保存在相册中,它工作正常,通过在 MailViewComposer 和 iMessage 中打开 GIF 进行测试。
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
NSData *data = [NSData dataWithContentsOfFile:tempPath]; // Your GIF file path which you might have saved in NSDocumentDir or NSTempDir
[library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error)
if (error)
NSLog(@"Error Saving GIF to Photo Album: %@", error);
else
// TODO: success handling
NSLog(@"GIF Saved to %@", assetURL);
success(tempPath);
];
【讨论】:
唉 alaassetslibrary 已弃用,在 ios11 中不再受支持!【参考方案2】:GIF 可以很容易地从 URL 保存到相册
let url = FileManager.default.urlForFile("lion.gif") // Document Directory or Bundle url path
phphotoLibrary.shared().performChanges (
PHAssetChangeRequest.creationRequestForAssetFromImage(atFileURL: url)
) saved, error in
if saved
print("Your image was successfully saved")
【讨论】:
以上是关于如何将 GIF 保存到我的相册?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 ffmpeg 将 GIF 的所有帧保存到 PNG 中?