问题
I use following .htaccess to set gzip compression:
AddOutputFilterByType DEFLATE text/html image/png image/jpeg text/css text/javascript
Please check this url: http://www.coinex.com/cn/silver_panda/proof/china_1984_27_gram_silver_panda_coin/
the gzip compression works for html, css, js and jpg, but not working for png (really amazing..)
回答1:
PNG is already a compressed data format. Compressing it with GZIP is not likely to decrease the size, and can in fact make it larger.
I'm surprised you're seeing benefits when GZIP-ing JPGs, as they are also compressed.
See here for Google's tips on using GZIP. They recommend not applying it to images.
回答2:
The PNG image format already uses deflate compression internally. So you will not usually see any appreciable decrease in transmitted size by using HTTP compression on top of that. Therefore you should remove image/png from the list you mentioned to avoid wasting CPU cycles at the server and client on a redundant compression step.
回答3:
If you want to make your PNGs smaller use https://tinypng.com/ or other png optimizer. Yes, it fully supports alpha channel too.
回答4:
PNG is a lossless image compression format. Basically it uses spatial compression to fully preserve the original image quality. It cannot be compressed further without loss of quality (you would need to use another lossless format to see if it works better).
There is no need to use GZIP (or equivalent) as it will just add processing for the decompression of images client side.
For JPEG the best you can do is make sure you use the correct resolution and quality settings for your purpose. GZIP produces mix results at best. Make sure you strip all metadata from it (unless you need those info client side but you would be better off holding those data in a database).
来源:https://stackoverflow.com/questions/11289369/why-png-size-doesnt-change-after-using-http-gzip-compression