Image 组合动画帧以节省空间
我正在做一个使用大量图形文件的项目。我们有大约500个60x60 PNG文件组成了几个不同的动画(大约80个),占用了大约2MB的空间。在代码中,我只是逐个绘制每个帧来渲染动画。例如,其中一个动画由3帧组成,每个帧的大小约为4KB。我的问题是,我们是否可以做些什么来减小这些图像的大小 我们在很大程度上依赖于图像的透明度,所以转换成JPG是不可能的。转换为GIF是一种选择,但渲染图像的质量太低,所以我认为我们不能使用它 PNGCrush在所有图像中为我们节省了大约20KB,所以没有多大帮助Image 组合动画帧以节省空间,image,animation,image-processing,Image,Animation,Image Processing,我正在做一个使用大量图形文件的项目。我们有大约500个60x60 PNG文件组成了几个不同的动画(大约80个),占用了大约2MB的空间。在代码中,我只是逐个绘制每个帧来渲染动画。例如,其中一个动画由3帧组成,每个帧的大小约为4KB。我的问题是,我们是否可以做些什么来减小这些图像的大小 我们在很大程度上依赖于图像的透明度,所以转换成JPG是不可能的。转换为GIF是一种选择,但渲染图像的质量太低,所以我认为我们不能使用它 PNGCrush在所有图像中为我们节省了大约20KB,所以没有多大帮助 在动画
在动画的每一帧之间,数据没有太多变化。您可以将所有图像转换为JPG,并为每个图像创建另一个黑白图像,作为alpha通道,也可以是JPG(这些图像应该非常可压缩),只需自己管理透明度即可
您还可以将所有图像转换为一个大字节数组,并在数组上应用LZ变体(LZO/ZLIB应该可以很好地工作),这至少可以为您节省15%。您可以将所有图像转换为JPG,并为每个图像创建另一个黑白图像,作为alpha通道,也可以是JPG(这些图像应该非常可压缩),你自己管理透明度就行了 您还可以将所有图像转换为一个大字节数组,并在数组上应用LZ变体(LZO/ZLIB应该可以很好地工作),这至少可以为您节省15%。您可以使用它来存储图像。它有很好的压缩能力,支持alpha,就像PNG一样(有损模式和无损模式),但它使用的是浮点处理器(如果这是个问题的话) 另一种可能性是:
- 将第一幅图像转换为JPEG,将alpha通道转换为B/W JPEG
- 计算从第一个图像到第二个图像的增量(差值)
- 压缩增量(再次以JPEG格式)
- 如果它的质量好,就降低质量
- 将第一幅图像转换为JPEG,将alpha通道转换为B/W JPEG
- 计算从第一个图像到第二个图像的增量(差值)
- 压缩增量(再次以JPEG格式)
- 如果它的质量好,就降低质量