ImageResizer 中是否有 PNG 压缩,例如 tinypng.org?

Is there PNG compression in ImageResizer like tinypng.org?

我有一个显示大量透明 png 的项目。我使用 Cloudfront 和 ImageResizer 来提供我的图像:

media.mysite.com/Images/imageA.png;w=170

现在这是我的泡菜。

imageA.png 是 ~220kb --> 在 tinypng.org 之后 --> ~87kb / ~62% 减少

我可以访问这样的 png "compression" 库,但问题是 ImageResizer 将大小恢复到完整(不压缩)

imageA.png;w=170 为 ~90kb --> tinypng.org --> ~20kb / ~62% 减少

因此,即使我通过 tinypng.org 运行 imageA.png,然后应用 ImageResizer 调整大小,我也会放松 png 压缩。最后,这使我的页面变得沉重。

(我确实考虑过一种解决方法来异步加载我的图像。)

所以我想知道 ImageResizer 是否可以"即时"进行 png 压缩?

我正在阅读有关 http://imageresizing.net/plugins/prettygifs 的信息,但我不确定我是否理解它的工作原理。

谢谢!


这似乎是 PNG Compression 和 ImageResizer 的副本。

总而言之——PNG 编码与 Jpeg 编码完全不同。

完全优化 PNG 文件的编码需要大量时间和内存。您无法在不解码和重新编码的情况下调整图像大小。 ImageResizer 更喜欢以较大的文件大小快速(约 100-250 毫秒)将图像返回给您,而不是花费 5-15 秒并使用所有服务器的 RAM 来生成较小的 PNG。考虑 tinypng.org 需要多长时间来优化您的图像。您可以在您的网站上实时处理这种延迟吗?

ImageResizer 提供 WebP,它可以为您提供比 PNG 更好的速度/大小平衡。

基本上,在预先优化的 PNG sprite 上使用 ImageResizer 不会对文件大小有太多好处。


这个插件很适合我

https://github.com/svenrog/ImageResizer.Plugins.PngOptimizer

只需构建它(我在 nuget 上找不到它)并将以下内容添加到 web.config

<plugins> 部分

1
 

然后将 &optimized=1 添加到您的 URL 参数中。

确保您使用了某种缓存 - Amazon cloudfront 效果最好,因为您可以将其指向您的网站并提供任何缓存的文件。

重要提示:示例中有错字,应该是 optimized=1 而不是 optimize=1