开发工具 使用 ImageMagick 为你的网站减重 (2)

hooopo for Shopper+ · 2013年07月07日 · 最后由 JeskTop 回复于 2014年11月16日 · 8471 次阅读
本帖已被管理员设置为精华贴

以前用 optipng 对 PNG 图片做无损压缩,发现巨慢无比。后来先把 PNG 转成 JPEG,然后用 jpegoptim 将 PNG 先转换成 JPEG,再压缩的。不过 Alpha 通道没了……

#1 楼 @zhangyuan 反正就本地压缩一次..

听说http://www.graphicsmagick.org/ 的性能更好一些……

#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/背景图片之类。做实时的不合适。

#5 楼 @hooopo 嗯。是用户 or 编辑上传的图片。上传后,用户再次访问会经过 CDN 缓存,所以必须得实时处理。另外的方案是上传后,给用户返回原图,然后后台 worker 压缩,压缩好之后再清理 CDN 缓存,但这样有点复杂;所以简单粗暴了。

#6 楼 @zhangyuan 用户和编辑上传的这种图片转成 JPEG 是最佳的,因为这类图(一般是相机拍摄的)不需要半透明或动画效果。存成 JPEG 更利于压缩和优化。

#3 楼 @imlcl 又不是做 flickr 这种网站,功能丰富、文档全、资料多才是最重要的。

#8 楼 @hooopo gm API 比 im 稳定好多 ...

#9 楼 @bhuztez 但是我还没遇到过 IM 出什么问题。

#10 楼 @hooopo 你自己用 C 调 API 的时候就知道 GM 的好了

我以前以为 baseline 还是 progressive 是浏览器控制的... Orz

#13 楼 @Saito 首先图片要有这个特性。浏览器也会控制的,比如 IE9 以下的浏览器就不支持。

“优化”png 一直用 pngnq

@hooopo 你推荐的 image_optim 真好用,网站共 3.7MB 的图片,优化完以后 3.1MB。准备给 app 里面用的图片也全都优化一下。

前几天一直找这样子的由模糊变清晰的方法 雪中送炭么不是~!

查了一下,好像又拍、七牛的自动缩放不支持这个 Progressive JPG 么?

image_optim 不错! 谢谢分享。

肥猴越看头像越像本人...怎么办

#13 楼 @Saito 我猜好像可以,读数据用 canvas 画

#20 楼 @hooopo 是的

推荐 graphicmagick,性能跟压缩大小都比 im 好 30% 以上

遗憾的是 progressive jpeg 在手机上的表现还不让人满意。 http://calendar.perfplanet.com/2012/progressive-jpegs-a-new-best-practice/

其实还可以对 chrome 直接输出 webp?

感觉 google 的 pagespeed_mod 在这方面有很深的积累

多谢分享,又学到了一点新东西

hooooopo 哥,文章都搬哪里去啦。有篇说图片的初始化的文章急需啊。

#26 楼 @hooooopo 😥 还有相关类型文章推荐吗?不知道关键词,没法搜索呢。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号