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 上找不到它)并将以下内容添加到
的
1 |
然后将
确保您使用了某种缓存 - Amazon cloudfront 效果最好,因为您可以将其指向您的网站并提供任何缓存的文件。
重要提示:示例中有错字,应该是