2013-10-31 51 views
2

我有这个项目,显示一个透明PNG的大名单。我使用的Cloudfront和ImageResizer服务于我的图片:ImageResizer中是否有像PNY压缩一样的PNG压缩?

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压缩。最后,这使我的网页变得沉重。

(我想到一个变通方法来asynchrounously载入我的图片。)

所以我不知道是ImageResizer可以“飞”做到这一点PNG压缩?

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

谢谢!

回答

2

这似乎是PNG Compression and ImageResizer的重复。

总结 - PNG编码绝对没有像Jpeg编码。

全面优化PNG文件的编码需要大量的时间和内存。如果不解码并重新编码图像,则无法调整图像大小。 ImageResizer更喜欢使用更大的文件大小将图像快速恢复(〜100-250ms),而不是花费5-15秒,并使用所有服务器的RAM来生成更小的PNG。考虑tinypng.org花费多长时间来优化您的图片。你会不会在你的网站上实时延迟这种延迟?

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

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

+0

我看的时候tinypng走,我想你是对的,这需要很长的时间来加载我的网页。我会看看WebP是否可以使用它,以及我得到的尺寸。最后,我想我总是可以预处理我的图像。感谢您花时间解释! –

+0

亚..但是...这就是缓存插件的用途。并不是每个人都有一百万张图片需要调整大小以适应不同的尺寸。我有50个图像,每个图像可能有5种尺寸 - 并且可以轻松缓存。 tinypng.org的结果正是我所寻找的 –

+0

HTTP请求超时。缓存不能解决多秒的请求。对于多秒的流程,您需要一个队列和工作人员系统,而不是一个即时系统。 –

0

这个插件对我来说

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

就建立它(我找不到它的NuGet),并添加以下的web.config

<add name="PngOptimizer" /> 

<plugins>节随后的伟大工程将&optimized=1添加到您的网址参数。

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

重要提示:有一个在例如一个错字,它应该是optimized=1而不是optimize=1