为什么要优化图片
想象一下,如果TTLSA每篇文章图片都是1M,一篇文章有10个图片,你看一篇文章是一种什么体验。不仅仅体验差,TTLSA的CDN流量也是蹭蹭蹭的往上涨,涨的是流量,掉的是钱。一个图片100k和1MB的现实的效果差不多,为什么不用100K呢
如何优化图片
有如下几种方法
- 打开大图,QQ截屏然后保存下来
- ngx_pagespeed插件,自动化优化图片质量/尺寸
- firework、ps等工具导出图片
- jpegoptim、pngcrush
介绍下第四种在linux下压缩图片,并且图片质量不会太差,而且可以写脚本批量压缩图片。
jpegotim压缩图片
安装jpegotim
如果你有epel yum源,使用如下命令即可
1 |
# yum install jpegoptim |
压缩图片命令
12 |
# jpegoptim ttlsa.jpgttlsa.jpg1425x82324bitNJFIF [OK]1074449-->853514bytes(20.56%),optimized. |
可以看到ttlsa.jpg自动被压缩了20.56%。
再压缩一次
12 |
# jpegoptim ttlsa.jpg ttlsa.jpg 1425x823 24bit N JFIF [OK] 853514 --> 853514 bytes (0.00%), skipped. |
图片已经被压缩过了,所以提示跳过,不需要在被压缩。
提供一个批量压缩的脚本
1 |
foriin/data/site/image.ttlsa.com/images/*.jpg;dojpegoptim$i;done |
pngcrush优化PNG图片
项目地址:http://pmt.sourceforge.net/pngcrush/
12345 |
# wget http://downloads.sourceforge.net/project/pmt/pngcrush/1.7.88/pngcrush-1.7.88.tar.gz# tar -xzvf pngcrush-1.7.88.tar.gz# cd pngcrush-1.7.88# make# cp pngcrush /usr/bin |
pngcrush使用语法
1234567891011 |
usage:pngcrush[optionsexceptfor-e-d]infile.pngoutfile.png pngcrush-eext[otheroptions]file.png... pngcrush-ddir/[otheroptions]file.png... pngcrush-ow[otheroptions]file.png[tempfile.png] pngcrush-n-vfile.png...options: -bail(bailoutoftrialwhensizeexceedsbestsizefound -bit_depthdepth(deprecated) -blacken(zerosamplesunderlyingfully-transparentpixels) -brute(usebrute-force:try148differentmethods)........更多内容请自己看帮助...... |
pngcrush简单命令
12345678 |
pngcrush -brute -e "myimage_compressed.png" myimage.png.........省略..... Best pngcrush method = 123 (ws 15 fm 4 zl 9 zs 1) = 124820 for output to ttlsattlsa_new.png (1.63% critical chunk reduction) (1.63% filesize reduction) CPU time decoding 1.560, encoding 7.640, other 0.030, total 9.230 sec. |
批量优化PNG图片
1 |
pngcrush-brute-d"/data/site/image.ttlsa.com/images"*.png |
转自运维生存时间 http://www.ttlsa.com/linux/optimizing-jpg-png-images-on-linux/