Image processing 如何提高PNG图像的可压缩性?

Image processing 如何提高PNG图像的可压缩性?,image-processing,graphics,bitmap,compression,png,Image Processing,Graphics,Bitmap,Compression,Png,我想知道如何确保PNG图像具有良好的压缩性。请注意,我不是在问如何很好地压缩PNG图像(使用pngcrush等工具),而是如何确保PNG中的图像内容更容易压缩 我的问题与减少大规模图像生成系统中的存储空间需求有关 该项目将构建和存储用户生成的图像(比如说一个化身创造者),因此输出的源片段在我们的控制之下。合成的PNG输出文件将在服务器端生成并存储在云存储服务中 每月生成的图像的上限估计数达到数百万,因此每个字节都会计数 P>在创建原始的片断时,我们能考虑到什么东西,将进入能保证良好压缩性的复合

我想知道如何确保PNG图像具有良好的压缩性。请注意,我不是在问如何很好地压缩PNG图像(使用pngcrush等工具),而是如何确保PNG中的图像内容更容易压缩

我的问题与减少大规模图像生成系统中的存储空间需求有关

该项目将构建和存储用户生成的图像(比如说一个化身创造者),因此输出的源片段在我们的控制之下。合成的PNG输出文件将在服务器端生成并存储在云存储服务中

每月生成的图像的上限估计数达到数百万,因此每个字节都会计数

<> P>在创建原始的片断时,我们能考虑到什么东西,将进入能保证良好压缩性的复合输出图像?

例如。。。颜色重要吗?在产生较大输出的源图像数据中是否存在好的和坏的颜色梯度?重抗锯齿是好还是坏?有没有有损的方法来处理源图像以提高PNG的压缩性


通常,在创建图像时,是否有任何字节保存提示?

图像中的许多“唯一”区域会增加文件大小。因此,确保更好压缩的一种方法是在图像中有许多相似甚至相同的区域。例如,如果图像包含主题,请尝试确保背景为纯白色或黑色。还可以尝试通过装箱或模糊来减少图像中的颜色数量,以达到应用程序要求可以容忍的程度。希望这有帮助。

图像中的许多“独特”区域会增加文件大小。因此,确保更好压缩的一种方法是在图像中有许多相似甚至相同的区域。例如,如果图像包含主题,请尝试确保背景为纯白色或黑色。还可以尝试通过装箱或模糊来减少图像中的颜色数量,以达到应用程序要求可以容忍的程度。希望这有帮助。

PNG压缩是基于局部(一像素邻域)预测,然后进行ZLIB压缩。因此,如果我们处理的是真彩色(RGB)图像,您需要很多均匀的区域,最好是在水平或垂直方向上,或者非常平滑,以便预测误差很小。这也有助于减少图像的颜色,因为预测错误会重复(Zlib会很好地压缩)。 因此,对PNG真彩色图像进行预处理以保存PNG的一个简单方法是对其进行后处理。 当然,如果您的颜色非常少,您可以选择将其保存为索引(调色板)PNG,这将使图像明显变小,并且之前的考虑事项(局部平滑度)不那么重要。 因此,问题是复杂的

重抗锯齿是好还是坏

抗锯齿与JPEG配合得很好,而与PNG配合则更难说:它使图像更平滑,但能产生更多的颜色


正如一条评论所说,如果你容忍有损压缩(如果你不需要alpha),你通常会选择JPEG。PNG压缩是基于局部(一像素邻域)预测,然后是ZLIB压缩。因此,如果我们处理的是真彩色(RGB)图像,您需要很多均匀的区域,最好是在水平或垂直方向上,或者非常平滑,以便预测误差很小。这也有助于减少图像的颜色,因为预测错误会重复(Zlib会很好地压缩)。 因此,对PNG真彩色图像进行预处理以保存PNG的一个简单方法是对其进行后处理。 当然,如果您的颜色非常少,您可以选择将其保存为索引(调色板)PNG,这将使图像明显变小,并且之前的考虑事项(局部平滑度)不那么重要。 因此,问题是复杂的

重抗锯齿是好还是坏

抗锯齿与JPEG配合得很好,而与PNG配合则更难说:它使图像更平滑,但能产生更多的颜色


正如一条评论所说,如果你容忍有损压缩(如果你不需要alpha),你通常会选择JPEG。如果你愿意更改图像,为什么不使用有损压缩方法,例如JPEG?您可以拨入您认为可以接受的最高压缩级别。因为我需要输出中的alpha透明度。非主题?常见问题解答允许提出涉及特定编程问题的问题。它们不需要源代码。我的问题与减少大规模图像生成系统中的存储空间需求有关。它是针对那些可能有PNG文件格式操作知识的人。如果这不是特定主题的编程问题,那么我不知道是什么问题。如果您愿意更改图像,那么为什么不使用有损压缩方法,例如jpeg?您可以拨入您认为可以接受的最高压缩级别。因为我需要输出中的alpha透明度。非主题?常见问题解答允许提出涉及特定编程问题的问题。它们不需要源代码。我的问题与减少大规模图像生成系统中的存储空间需求有关。它是针对那些可能有PNG文件格式操作知识的人。如果这不是一个特定于主题的编程问题,那么我不知道是什么问题。