JFHeroBrowser icon indicating copy to clipboard operation
JFHeroBrowser copied to clipboard

gif图片读取&保存支持

Open hstdt opened this issue 2 years ago • 4 comments

目前我展示本地的gif使用的方案是HeroBrowserLocalImageViewModule配合SDWebImage

let image = UIImage.sd_image(with: origin)
let vm = HeroBrowserLocalImageViewModule(image: image)

缺点是在长按保存的时候,已经拿不到对应的origin data了

HeroBrowserDataImageViewModule无法正确展示,且无法保存 HeroBrowserNetworkImageViewModule可以正确展示,但无法保存

可能要在DownloadProvider下载的时候把data也一并保存起来, 以支持保存?

hstdt avatar Nov 15 '22 09:11 hstdt

你这个思路是对的,可以从NetworkImageProvider入手,再实现一个GifViewModule之类的。但是我感觉你说的保存功能iOS下保存gif到相册是只能变成单帧图的哦,我建议用HeroBrowserNetworkImageViewModule, 保存时候获取HeroBrowserNetworkImageViewModule下的 url重新下载raw data ,and then 做你想要实现的功能。

JerryFans avatar Nov 15 '22 10:11 JerryFans

尝试使用了修改RawData定义的方式,但是是破坏性的。这个分支基于SPM的支持和增加了一个willdismiss的delegate功能分支。 https://github.com/hstdt/JFHeroBrowser/tree/rawdata

spm支持分支(JRBaseKit以Git Submodule方式导入) https://github.com/hstdt/JFHeroBrowser/tree/spm

willdismiss分支 https://github.com/hstdt/JFHeroBrowser/tree/feat-dismiss

这几个分支是基于已有的两个Pull Request编写的。

hstdt avatar Nov 15 '22 10:11 hstdt

修改了RawData的定义之后,asyncLoadRawSource就能够拿到origin data了,但是就不能兼容之前的接口了,NetworkImageProvider也要随着库更新。不确定是否是一个好的方案。

hstdt avatar Nov 15 '22 10:11 hstdt

我有空整理一下,最近比较忙,你今天的pr 我还没看呢。

JerryFans avatar Nov 15 '22 10:11 JerryFans