谭凯文 發表於 2023-6-18 00:00:00

Linux命令压缩/优化JPG/PNG图片

<h3 class="postbody">为什么要优化图片</h3>
<p>想象一下,如果TTLSA每篇文章图片都是1M,一篇文章有10个图片,你看一篇文章是一种什么体验。不仅仅体验差,TTLSA的CDN流量也是蹭蹭蹭的往上涨,涨的是流量,掉的是钱。一个图片100k和1MB的现实的效果差不多,为什么不用100K呢</p>
<h3>如何优化图片</h3>
<p>有如下几种方法</p>
<ol>
<li>打开大图,QQ截屏然后保存下来</li>
<li>ngx_pagespeed插件,自动化优化图片质量/尺寸</li>
<li>firework、ps等工具导出图片</li>
<li>jpegoptim、pngcrush</li>
</ol>
<p>介绍下第四种在linux下压缩图片,并且图片质量不会太差,而且可以写脚本批量压缩图片。</p>
<div class="container">
<div class="row">
<div class="col-md-9 col-md-pull-3">
<section class="postbody"><h3>jpegotim压缩图片</h3>
<p>安装jpegotim</p>
<p>如果你有epel yum源,使用如下命令即可</p><pre class="brush:bash;toolbar:false"># yum install jpegoptim</pre><p>压缩图片命令</p><pre class="brush:bash;toolbar:false"># jpegoptim ttlsa.jpg
ttlsa.jpg 1425x823 24bit N JFIF  1074449 --&gt; 853514 bytes (20.56%), optimized.</pre><p>可以看到ttlsa.jpg自动被压缩了20.56%。</p>
<p>再压缩一次</p><pre class="brush:bash;toolbar:false"># jpegoptim ttlsa.jpg
ttlsa.jpg 1425x823 24bit N JFIF 853514 --&gt; 853514 bytes (0.00%), skipped.</pre><p>图片已经被压缩过了,所以提示跳过,不需要在被压缩。</p>
<p>提供一个批量压缩的脚本</p><pre class="brush:bash;toolbar:false">for i in /data/site/image.ttlsa.com/images/*.jpg; do jpegoptim $i; done</pre><p></p>
<h3>pngcrush优化PNG图片</h3>
<p>项目地址:http://pmt.sourceforge.net/pngcrush/<br></p><pre class="brush:bash;toolbar:false"># 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</pre><br>
pngcrush使用语法<br><pre class="brush:bash;toolbar:false">usage: pngcrush infile.png outfile.png
       pngcrush -e ext file.png ...
       pngcrush -d dir/ file.png ...
       pngcrush -ow file.png
       pngcrush -n -v file.png ...
options:
         -bail (bail out of trial when size exceeds best size found
    -bit_depth depth (deprecated)
      -blacken (zero samples underlying fully-transparent pixels)
        -brute (use brute-force: try 148 different methods)
........更多内容请自己看帮助......</pre><br>
pngcrush简单命令<br><pre class="brush:bash;toolbar:false">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.</pre><br>
批量优化PNG图片<br><pre class="brush:bash;toolbar:false">pngcrush -brute -d "/data/site/image.ttlsa.com/images" *.png</pre><br></section>
</div>
</div>
</div>
<footer><div class="container"></div>
</footer>
頁: [1]
查看完整版本: Linux命令压缩/优化JPG/PNG图片