2

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

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

现在这是我的泡菜。

imageA.png 为 ~220kb --> tinypng.org --> ~87kb / ~62% 减少

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

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

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

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

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

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

谢谢!

4

2 回答 2

2

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

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

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

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

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

于 2013-10-31T19:25:07.933 回答
0

这个插件很适合我

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

只需构建它(我在 nuget 上找不到它)并将以下内容添加到您的<plugins>部分web.config

    <add name="PngOptimizer" />

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

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

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

于 2016-08-21T05:08:11.763 回答