iOS开源:FLAnimatedImage - iOS 的 Gif 渲染引擎
ghte5147
8年前
<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>