以前用 optipng 对 PNG 图片做无损压缩,发现巨慢无比。后来先把 PNG 转成 JPEG,然后用 jpegoptim 将 PNG 先转换成 JPEG,再压缩的。不过 Alpha 通道没了……
#2 楼 @hooopo 以前用 piet(也就是 optipng 和 jpegoptim 的命令行封装,分别针对 png 和 jpeg)。对比较大的 PNG 图片,需要处理 1 分钟以上。如果一次传五六张,基本就超时了…… piet 默认是用的最高等级压缩(optipng -o7 file.png,见 https://github.com/albertbellonch/piet/blob/master/lib/piet.rb#L32 )。后来在命令行下试了,也这么久,所以忍痛转换成 jpeg 了。
#4 楼 @zhangyuan 你是用这东西处理用户上传到服务器的图片?我觉得 optipng 和 jpegoptim 这些只适合在本地处理网站用的 banner/logo/背景图片之类。做实时的不合适。
#6 楼 @zhangyuan 用户和编辑上传的这种图片转成 JPEG 是最佳的,因为这类图(一般是相机拍摄的)不需要半透明或动画效果。存成 JPEG 更利于压缩和优化。
@hooopo 你推荐的 image_optim 真好用,网站共 3.7MB 的图片,优化完以后 3.1MB。准备给 app 里面用的图片也全都优化一下。
遗憾的是 progressive jpeg 在手机上的表现还不让人满意。 http://calendar.perfplanet.com/2012/progressive-jpegs-a-new-best-practice/
其实还可以对 chrome 直接输出 webp?
感觉 google 的 pagespeed_mod 在这方面有很深的积累