iOS开源:FLAnimatedImage - iOS 的 Gif 渲染引擎

ghte5147 7年前
   <p>公司的项目有个首页加载一张2M左右的git图,刚做的时候是使用的SDWebImage里面的方法:</p>    <pre>  <code class="language-objectivec">+ (UIImage *)sd_animatedGIFNamed:(NSString *)name;  + (UIImage *)sd_animatedGIFWithData:(NSData *)data;</code></pre>    <p>​使用之后发现这个方法会使内存迅速上增300M,在网上找了一些方法:</p>    <pre>  <code class="language-objectivec">//在didReceiveMemoryWarning方法中释放SDImage的缓存即可!  - (void)didReceiveMemoryWarning {         [superdidReceiveMemoryWarning];          // Dispose of     any resources that can be recreated.         [[SDWebImageManagersharedManager]cancelAll];         [[SDImageCachesharedImageCache]clearDisk];  }</code></pre>    <p>​但是使用之后发现效果并不明显,于是使用了这个FLAnimatedImage,瞬间没存回到原来的位置.</p>    <p>FLAnimatedImage 是 iOS 的一个渲染 Gif 动画的引擎。</p>    <pre>  <code class="language-objectivec">1.可同时播放多个 Gif  2.动画,速度媲美桌面浏览器  3.可变帧延迟  4.内存占用小  5.可在第一次循环播放时消除或者阻止延迟  6.动画的帧延迟解析性能媲美浏览器</code></pre>    <p>示例代码:</p>    <pre>  <code class="language-objectivec">FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif"]]];  FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init];  imageView.animatedImage = image;  imageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0);  [self.view addSubview:imageView];</code></pre>    <p>​</p>    <p>效果图:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/91deb9fb9e3d539eb5be37dbcd5ab686.gif"></p>    <p> </p>    <p>来自:http://www.jianshu.com/p/3e41f354c423</p>    <p> </p>