阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 12614阅读
  • 1回复

[解决方案]利用 OptiPNG、jpegoptim 对图片进行无损压缩,降低ECS储存占用

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 不靠谱贝贝 设置为精华(2016-12-14) —
+^.Yt0}  
3CCs_AO  
前言 ~7m`p3W@  
Z8v\>@?5R  
网站图片一直是储存和流量大户,在搬家的时候最能感受的出来了,一下子几百G的图片库真正人都傻掉。但还好现在还有图片压缩技术可以抢救一下,说不定一下子就是压缩除了十几个 G呢! ]'.qRTz'\t  
把图片库脱下来一张一张压缩那太傻了。在 Linux 系统下,我们完全可以做到开个命令喝杯咖啡就坐享其成了。 ,K5K?C$k  
1p&.\ ^  
介绍 u 3WU0Z`  
w$]G$e  
引用
_3/u#'m0  
OptiPNG 是一个能无损压缩 PNG 的工具,也可以将非 PNG 的档案(BMP, GIF, PNM and TIFF) 转换成压缩过后的PNG。 26V6Y2X  
jpegoptim 是一个用来优化 JPEG 文件的工具,提供无损的优化(基于哈夫曼表),同时也可设置质量因子实现的有损优化。
JrP`u4f_  
pF;.nt)  
;jP sS^X  
安装 inu.U[.  
hf`y_H+\7  
; 476t  
RHEL、CentOS
  1. yum install optipng jpegoptim
"4b{YWv  
mnt&!X4<  
Debian、Ubuntu
  1. apt-get install optipng jpegoptim
9z,sn#-t  
d59rq<yI  
MAC
  1. brew install optipng jpegoptim
kZ9Gl!g  
kQ\GVI11?  
#}A"yo  
使用 -J v,#Z3  
+3,7 Apj  
Z$z-Hx@%  
假设,我们的网站所在物理路径是:/home/mf8/mf8.biz/public_html uQ=u@qtp  
进入网站目录 g *5_m(H  
wgz]R  
  1. cd /home/mf8/mf8.biz/public_html
关键 ydWr&E5  
T;u;r@R/  
压缩 PNG
  1. find . -iname '*.png' -print0 | xargs -0 optipng -o7 -preserve
r CJ$Pl9R  
>~g-  
之后,所有的目录下,包括子目录中的所有 png 文件都会被压缩,但是因为这货会参考多种方案后选择最佳方案来压缩,所以耗时贼 TM 长。100M 的图片我压缩花了两个小时。 m"L^tSD~  
f]*;O+8$LN  
%_ew{ff|  
压缩 JPG
  1. find . -iname '*.jpg' -print0 | xargs -0 jpegoptim --strip-all --preserve --totals --all-progressive
|5>Tf6 $(  
D#nHg  
同样压缩所有 jpg 文件,但是速度会快很多。加入 –max=90 参数可以定义有损压缩的大小,例如这里就是提供 90% 的有损压缩,来提高压缩效率。 +9/K|SB{ $  
+G;<D@gSa0  
进阶 yp~z-aRa  
#( .G;e;w  
% J\G[dl  
  1. 10 2 * * * echo `date` >> /root/optipng.log && find /var/www/ -mtime -2 -iname '*.png' -print0 | xargs -0 optipng -o7 -log /root/optipng.log -preserve && echo `date` >> /root/jpegoptim.log && find /var/www/ -mtime -2 -iname '*.jpg' -print0 | xargs -0 jpegoptim --max=90 --preserve --totals --all-progressive >> /root/jpegoptim.log
fhi}x(  
P`rfDQoZ  
KKwM\   
输入这个,我们就会在凌晨两点对 /var/www 下的所有 png 和 jpg 文件,并在 /root 目录下生成目录。 bAlty}U  
\7\sx:!$  
注意点! 5,xPB5pK  
:@(1~Hm  
E}Cz(5  
压缩这门手艺,极其占用 CPU 资源,几乎都是 100% 资源占用的。建议在访客最少的时候进行压缩,且不要在共享内核的机器上使用本软件,你肯定会因为 CPU 占用过高而被停号的! E"}%$=yK  
当然了,我们可以用 cpulimit 来限制相关压缩软件的 CPU 利用率~ 教程老司机教你用 cpulimit 防止 CPU 过载而翻车  https://bbs.aliyun.com/read/301215.html }a OBQsnO  
来自:https://www.mf8.biz/optipng-jpegoptim/
[ 此帖被ivmmff在2017-03-08 22:59重新编辑 ]
级别: 禁止发言
发帖
11
云币
22
只看该作者 沙发  发表于: 2016-12-28
用户被禁言,该主题自动屏蔽!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)