iOS动态图实现(1)

本文介绍了iOS中动态图的分类,如GIF、WEBP和APNG,并探讨了如何在iOS相册中保存动态图。接着,文章详细讨论了使用UIImageView、UIWebView和自定义View播放GIF动态图的优缺点,提出了一种优化内存消耗的播放策略。最后,提到了YZImageView和YZImage的使用以及动态图的显示效果。
摘要由CSDN通过智能技术生成

动态图的分类

  • GIF : GIF图形交换格式是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像,诞生在windows1.0的时代,已经有27年的历史,广泛的应用在图像的网络传输中。
  • WEBP : 2010年谷歌推出的图片格式,专门用来在web中使用,只有opera和chrome支持。
  • APNG : 这东西是mozilla搞出来的,它是24位的,可以容纳1680万种颜色,也是为了取代GIF,目前有火狐和Safari支持。

各种格式的图片大小性能比较可以在 GIF vs APNG vs WEBP 中看到,腾讯的同学也开源了一些工具可以用来转换不同格式的动态图,比如 iSpatra

iOS动图的保存

iOS 的相册是支持保存 GIF 和 APNG 动图的,只是不能直接播放。用

[ALAssetsLibrary    writeImageDataToSavedPhotosAlbum:metadata:completionBlock]

可以直接把 APNG、GIF 的数据写入相册。如果图省事直接用 UIImageWriteToSavedPhotosAlbum() 写相册,那么图像会被强制转码为 PNG。

目前来说,保存 UIImage 有三种方式:1.直接用 NSKeyedArchiver 把 UIImage 序列化保存,2.用 UIImagePNGRepresentation() 先把图片转为 PNG 保存,3.用 UIImageJPEGRepresentation() 把图片压缩成 JPEG 保存。

实际上,NSKeyedArchiver 是调用了 UIImagePNGRepresentation 进行序列化的,用它来保存图片是消耗最大的。苹果对 JPEG 有硬编码和硬解码,保存成 JPEG 会大大缩减编码解码时间,也能减小文件体积。所以如果图片不包含透明像素时,UIImageJPEGRepresentation(0.9) 是最佳的图片保存方式,其次是 UIImagePNGRepresentation()

GIF动态图的播放

1.使用UIImageView来播放

//创建UIImageView,添加到界面
UIImageView *imageView = [[UIImageView alloc]   initWithFrame:CGRectMake(20, 20, 100, 100)];
[self.view addSubview:imageView];
 //创建一个数组,数组中按顺序添加要播放的图片(图片为静态的图片)
NSMutableArray *imgArray = [NSMutableArray array];
for (int 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值