建站教程

对站点图片进行批量无损压缩

使用 WordPress 网站系统平台的应对Compress JPEG & PNG images插件不陌生,这是一个可以实时对 WordPress 站点上传的图片进行无损压缩的插件,功能还是非常强大的,唯一让人抓狂的是免费使用的话每月有 500 个图片处理限制,对于新站点来说可能无所谓的,对于老站点来说这 500 个很明显是无法满足需要的,特别是已经上传的图片受制于这个限制就无法进行无损压缩了,今天给大家分享一个在 Linux 控制台终端命令行式对站点的图片进行批量无损压缩的方法,已经在自己站点都实测过,效果不是一般的好,有些图片压缩率甚至超过 50%,这对站点空间占用的减少以及前端浏览载入速度的提升都是很明显的。

开始之前我们先了解一下什么是无损图像压缩技术:

无损图像压缩

  • 原理

无损压缩的基本原理是相同的颜色信息只需保存一次。压缩图像的软件首先会确定图像中哪些区域是相同的,哪些是不同的。包括了重复数据的图像(如蓝天) 就可以被压缩,只有蓝天的起始点和终结点需要被记录下来。但是蓝色可能还会有不同的深浅,天空有时也可能被树木、山峰或其他的对象掩盖,这些就需要另外记录。从本质上看,无损压缩的方法可以删除一些重复数据,大大减少要在磁盘上保存的图像尺寸。但是,无损压缩的方法并不能减少图像的内存占用量,这是因为,当从磁盘上读取图像时,软件又会把丢失的像素用适当的颜色信息填充进来。如果要减少图像占用内存的容量,就必须使用有损压缩方法。

  • 优点

无损压缩方法的优点是能够比较好地保存图像的质量,但是相对来说这种方法的压缩率比较低。但是,如果需要把图像用高分辨率的打印机打印出来,最好还是使用无损压缩几乎所有的图像文件都采用各自简化的格式名作为文件扩展名。从扩展名就可知道这幅图像是按什么格式存储的,应该用什么样的软件去读/写等等。

对于我们博客站点来说除非是专业需求,一般对图片的质量要求都不会太高,所以无损压缩几乎成了网站一种固定的优化方式之一,简单来说就是图片占用空间小了自然在前端浏览器载入的时间也会缩短!

在 Linux 中有不少图片无损压缩的工具,比较著名并使用最多就是 OptiPNG 和 jpegoptim 这两个了,这两个工具默认参数的情况下,无损压缩出来的图片肉眼几乎很难看出差别,压缩比还是很喜人的,并且借助 find、xargs 等终端命令就可以轻松实现对某个目录以及子目录的图片进行批量压缩处理,可以说效率还是非常高的,特别适合服务器运维人员使用。

  • OptiPNG 是一个能无损压缩 PNG 的工具,也可以将非 PNG 的档案(BMP, GIF, PNM and TIFF) 转换成压缩过后的 PNG。
  • jpegoptim 是一个用来优化 JPEG 文件的工具,提供无损的优化(基于哈夫曼表),同时也可设置质量因子实现的有损优化。

安装(以 CentOS 为例)

yum install optipng
yum install jpegoptim

可以 man optipng 和 man jpegoptim 详细了解 OptiPNG 和 jpegoptim 的优化参数。

批量优化当前目录以及子目录下的指定格式的图片

find . -name "*.jpg" | xargs jpegoptim
find . -name "*.jpg" | xargs jpegoptim
find . -name "*.png" | xargs optipng

如果你的站点图片比较多的话,建议选择在凌晨或者网站访问非高峰时段进行站点图片批量优化压缩,因为大量的压缩会让 CPU 的负载瞬间飙升的,切记切记!

对于 WordPress 站点来说一般只要进入 wp-content/uploads 目录内运行上面的命令即可,Typecho 的话在 usr/uploads 目录内执行。这样优化完成后,WordPress 再结合Compress JPEG & PNG images插件来专门针对未来新上传的图片进行实时压缩,整个站点的图片甚至未来上传的图片都会被无损压缩,也就达到了站点优化的效果。

不使用插件,实现wordpress登录才能查看网站内容

上一篇

Lstu:一款简单、美观的轻量级网址缩短程序

下一篇

你也可能喜欢

微信公众号

公众号

文章分类

对站点图片进行批量无损压缩

长按储存图像,分享给朋友

微信扫一扫

微信扫一扫