使用OptiPNG和Jpegoptim批量压缩优化网站图片

2023 年 2 月 9 日 星期四(已编辑)
/ , , , ,
575
2
AI 生成的摘要
随着博客更新,图片越来越多,使用CDN或有限服务器流量时需考虑节省流量。优化压缩图片能提高加载速度,虽然压缩比不高。推荐两个Linux批量压缩工具:Jpegoptim(无损压缩JPEG文件)和OptiPNG(PNG文件优化)。安装步骤包括下载、解压、编译,以及验证版本。使用find与xargs命令自动压缩/www目录下的jpg和jpeg图片。提供下载批量压缩脚本和设置定时任务的步骤,帮助定期执行图像压缩。
这篇文章上次修改于 2024 年 8 月 10 日 星期六,可能部分内容已经不适用,如有疑问可询问作者。

使用OptiPNG和Jpegoptim批量压缩优化网站图片

相信大多数人的博客应该都少不了图片吧,随着博客的更新,图片也是越来越多;若使用了 CDN,或者服务器有流量限制,那就要考虑如何节省流量了,尤其是图片方面的!

所以有条件还是优化压缩下图片为好,虽然压缩比也不会很高,但还能提高一些加载速度的,量变引起质变呀,有比没有强嘛!

这里推荐两个 Linux 用来批量压缩图片的工具

  • Jpegoptim - 用于无损压缩优化 JPEG 文件的小工具。
  • OptiPNG - 不丢失任何信息的 PNG 文件优化压缩小程序。

安装 Jpegoptim

下载 Jpegoptim
wget https://www.kokkonen.net/tjko/src/jpegoptim-1.5.1.tar.gz
解压
tar xzvf jpegoptim-1.5.1.tar.gz
jpegoptim-1.5.1 编译安装

cd jpegoptim-1.5.1
./configure
make
make strip
make install

验证 Jpegoptim 是否已经更新到最新版

jpegoptim -V

image

image

安装 OptiPNG

下载
wget https://nchc.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.7/optipng-0.7.7.tar.gz
解压
tar xzvf optipng-0.7.7.tar.gz
OptiPNG 编译安装

cd optipng-0.7.7
./configure
make
make install

验证 OptiPNG 版本

optipng -V

image

image

OptiPNG 和 Jpegoptim 的使用,可以借助 find、xargs 命令来配合使用
自动压缩优化/www目录下所有站点的jpg和jpeg图片文件。
find /www -name "*.jpg" -o -name "*.jpeg" | xargs jpegoptim
自动压缩优化/www目录下所有站点的PNG图片文件
find /www -name "*.png" | xargs optipng

使用 Shell 脚本自动批量压缩图片

xiaoz 大佬 编写了一个 shell 脚本来调用 OptiPNG、jpegoptim 工具自动完成批量压缩图片。

支持的图片格式

目前支持.jpg/.jpeg/.bmp/.png 格式图片

实现原理

先使用 find 命令查找指定目录图片(同时对图片大小和时间进行了筛选)
根据不同的图片格式调用不同的压缩工具
配合 crontab 定时任务工具自动批量压缩

#下载批量压缩脚本
wget https://raw.githubusercontent.com/helloxz/shell/master/img_compress.sh
#执行 shell 脚本
bash img_compress.sh /data/wwwroot/imgurl

其中/data/wwwroot/imgurl修改为自己的图片目录(需要使用绝对路径)

使用 crontab 定时执行

#先将脚本赋予执行权限
chmod +x img_compress.sh
#添加定时任务
crontab -e
#将内容复制到最后并保存(每小时执行一次)
*/60  * * * * /yourpath/img_compress.sh /data/wwwroot/imgurl > /dev/null
#重载 crontab
service crond reload
  • /yourpath/img_compress.sh为脚本的绝对路径
  • /data/wwwroot/imgurl为图片的绝对路径

最后

脚本默认查找 60 分钟以内曾被修改过的图片文件(再加上定时任务 1 小时执行一次,这样就不会去压缩重复的图片),并且大于 100kb 的图片才会进行压缩,您也可以下载脚本后对这些设定自行做出修改(图片的压缩等级也可以适当修改)。此方案适用于图片存放在 Linux 服务器环境下。--小 z 博客

参考文章
小 z 博客--Linux 环境下,使用 Shell 脚本自动批量压缩图片

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 使用OptiPNG和Jpegoptim批量压缩优化网站图片 - 华岁云小屋