gpt4 book ai didi

c# - .net 中的 PNG 压缩

转载 作者:行者123 更新时间:2023-11-30 14:39:03 31 4
gpt4 key购买 nike

我想使用不同的压缩级别将位图压缩为 PNG,因为这些级别在 C# 中的 JPEG 压缩中可用。我要在 1 秒内处理 20 到 30 张不同大小的图像。是否有任何库可以在具有不同压缩级别的 PNG 中实现这种压缩?

最佳答案

无损压缩方法不必是单一质量级别。我的意思是,一些无损压缩方法有一些参数来选择速度/压缩比权衡。这取决于作者。

PNG压缩其实就是一堆过滤器和deflate算法。考虑到 deflate 有一个冗余的编码阶段(例如,两个不同的压缩器可以产生完全不同的输出,但它们仍然可以被任何有效的解压缩器解压缩),难怪几个程序输出不同的 PNG。请注意,我仍然没有考虑过滤器。有多个过滤器,没有“最佳”过滤器,即它的质量因图像而异。

由于它的冗余功能,一些人编写了 PNG 优化器,将常规 PNG 作为输入来生成较小的 PNG,而不会造成任何感知损失。其中一些应用了一些技巧,例如用一些可预测的颜色填充完全透明的区域以增加压缩。但是,通常他们会以蛮力方式调整参数。

现在,对于您的问题,最简单的答案可能是您有两个选择:

  1. 如果您打算在桌面环境中运行您的可执行文件,您可以使用 these tools 之一作为优化器。但是,在共享主机中,由于可能的特权,您不能使用它们。
  2. 您可以在 .NET 中编写自己的 PNG 编写器,它考虑了一些强力参数调整。

关于c# - .net 中的 PNG 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6922533/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com