Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 组合动画帧以节省空间_Image_Animation_Image Processing - Fatal编程技术网

Image 组合动画帧以节省空间

Image 组合动画帧以节省空间,image,animation,image-processing,Image,Animation,Image Processing,我正在做一个使用大量图形文件的项目。我们有大约500个60x60 PNG文件组成了几个不同的动画(大约80个),占用了大约2MB的空间。在代码中,我只是逐个绘制每个帧来渲染动画。例如,其中一个动画由3帧组成,每个帧的大小约为4KB。我的问题是,我们是否可以做些什么来减小这些图像的大小 我们在很大程度上依赖于图像的透明度,所以转换成JPG是不可能的。转换为GIF是一种选择,但渲染图像的质量太低,所以我认为我们不能使用它 PNGCrush在所有图像中为我们节省了大约20KB,所以没有多大帮助 在动画

我正在做一个使用大量图形文件的项目。我们有大约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格式)
  • 如果它的质量好,就降低质量
您可以使用它来存储图像。它有很好的压缩能力,支持alpha,就像PNG一样(有损模式和无损模式),但它使用的是浮点处理器(如果这是个问题的话)

另一种可能性是:

  • 将第一幅图像转换为JPEG,将alpha通道转换为B/W JPEG
  • 计算从第一个图像到第二个图像的增量(差值)
  • 压缩增量(再次以JPEG格式)
  • 如果它的质量好,就降低质量