至此,解码APNG的每一帧图片已经完成了,接下来就是怎么组织这些帧,应该怎么播放,每一帧播放多久,
每一帧都由fcTL chunk控制
@objc func render(){
guard let link = self.link else { return }
let linkDuration = link.duration
self.currentDelay -= linkDuration
if self.currentDelay <= 0 {
self.showNextImage()
let delay = imageProvider.frameDuration(at: self.currentIndex)
self.currentDelay = (self.currentDelay + delay)
}
}
到此可以做一个小结了,文中只展示了重要的逻辑部分的代码,完整代码就从文首的Github上下载。
APNG其实并不复杂,这里面涉及到了一些知识点
1.图片格式的本质:本质就是组织管理图片数据,每一种图片格式都有它独特的数据压缩管理方式
2.APNG图片的压缩方式,帧内与帧间,这与视频压缩类似
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-89756-5.html
1937年中国的人口远超鬼子多少