2013-10-31 70 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