如何将 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 中?

使用 Fresco 时如何将图像保存到 SD 卡?

iosb站保存gif

苹果手机怎么把微信里面的图片保存到相册

如何将 google image map API 图片保存到我的服务器

现在苹果手机可以保存动态图了吗?怎么在相册里看动态图?