Linux 下无损图片压缩小工具介绍
今天我们来介绍实用的小工具。我们每个人都会有很多照片。尤其是当相机拍出来的照片越来越大时,我们的手机、磁盘开始有些吃紧了。目前其实有很多 GUI 工具可进行低损,甚至无损图片压缩。假如我们有一大堆图片文件分散在各个目录下,这些工具就有那么一点不好用了。这个时候就要看强大的命令行了。
- jpegoptim – 用于无损压缩优化 JPEG 文件的小工具。
- OptiPNG – 不丢失任何信息的 PNG 文件优化压缩小程序。
安装 jpegoptim
Debian 系列
$ sudo apt-get install jpegoptim1 2 | $ sudo apt-get install jpegoptim |
RedHat 系列
在 RHEL、CentOS、Fedora 这样的系统上,你需要先安装并启用 EPEL 仓库。你可以直接用下面这条命令安装启用。
$ sudo yum install epel-release $ sudo dnf install epel-release [On Fedora 22+ versions]1 2 3 | $ sudo yum install epel-release $ sudo dnf install epel-release [On Fedora 22+ versions] |
OK,继续安装。
$ sudo yum install jpegoptim $ sudo dnf install jpegoptim [On Fedora 22+ versions]1 2 3 | $ sudo yum install jpegoptim $ sudo dnf install jpegoptim [On Fedora 22+ versions] |
这样就安装好了,接下来看看怎么用起来。
使用 jpegoptim
jpegoptim 的用法很简单。
$ jpegoptim filename.jpeg $ jpegoptim [options] filename.jpeg1 2 3 | $ jpegoptim filename.jpeg $ jpegoptim [options] filename.jpeg |
我们选一张 LinuxStory 网站上的 jpg 图片来做演示,我们可以在压缩前后通过 du 命令来查看文件的大小。
ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 656K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$ jpegoptim LS.jpg LS.jpg 2838x1419 24bit N Exif IPTC ICC Adobe [OK] 667464 -- 583233 bytes (12.62%), optimized. ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 576K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$1 2 3 4 5 6 7 8 | ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 656K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$ jpegoptim LS.jpg LS.jpg 2838x1419 24bit N Exif IPTC ICC Adobe [OK] 667464 -- 583233 bytes (12.62%), optimized. ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 576K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$ |
随便用哪一个图片查看软件打开这张图片,你绝对看不错压缩前后有什么区别。默认压缩会尽可能的保证和原图的质量接近。
如果你还嫌不够小,那么可以牺牲一些质量。比如我们可以指定压缩到指定的文件大小。比如我们可以把文件压缩到 250K 。
ubuntu@VM-166-1-ubuntu:~/images$ jpegoptim --size=250k LS.jpg LS.jpg 2838x1419 24bit N Exif IPTC ICC JFIF [OK] 583233 -- 256134 bytes (56.08%), optimized. ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 256K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$1 2 3 4 5 6 | ubuntu@VM-166-1-ubuntu:~/images$ jpegoptim --size=250k LS.jpg LS.jpg 2838x1419 24bit N Exif IPTC ICC JFIF [OK] 583233 -- 256134 bytes (56.08%), optimized. ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.jpg 256K LS.jpg ubuntu@VM-166-1-ubuntu:~/images$ |
批量处理
命令行的工具一般都能很好的和其他工具配合使用,这样一来,想要批量压缩就变得很简单了。
ubuntu@VM-166-1-ubuntu:~/images$ ls -l total 65184 -rwxr----- 1 ubuntu ubuntu 6680532 Jan 19 12:21 DSC_0310.JPG -rwxr----- 1 ubuntu ubuntu 6846248 Jan 19 12:21 DSC_0311.JPG -rwxr----- 1 ubuntu ubuntu 7174430 Jan 19 12:21 DSC_0312.JPG -rwxr----- 1 ubuntu ubuntu 6514309 Jan 19 12:21 DSC_0313.JPG -rwxr----- 1 ubuntu ubuntu 6755589 Jan 19 12:21 DSC_0314.JPG -rwxr----- 1 ubuntu ubuntu 6789763 Jan 19 12:21 DSC_0315.JPG -rwxr----- 1 ubuntu ubuntu 6958387 Jan 19 12:21 DSC_0316.JPG -rwxr----- 1 ubuntu ubuntu 6463855 Jan 19 12:21 DSC_0317.JPG -rwxr----- 1 ubuntu ubuntu 6614855 Jan 19 12:21 DSC_0318.JPG -rwxr----- 1 ubuntu ubuntu 5931738 Jan 19 12:21 DSC_0319.JPG1 2 3 4 5 6 7 8 9 10 11 12 13 | ubuntu@VM-166-1-ubuntu:~/images$ ls -l total 65184 -rwxr----- 1 ubuntu ubuntu 6680532 Jan 19 12:21 DSC_0310.JPG -rwxr----- 1 ubuntu ubuntu 6846248 Jan 19 12:21 DSC_0311.JPG -rwxr----- 1 ubuntu ubuntu 7174430 Jan 19 12:21 DSC_0312.JPG -rwxr----- 1 ubuntu ubuntu 6514309 Jan 19 12:21 DSC_0313.JPG -rwxr----- 1 ubuntu ubuntu 6755589 Jan 19 12:21 DSC_0314.JPG -rwxr----- 1 ubuntu ubuntu 6789763 Jan 19 12:21 DSC_0315.JPG -rwxr----- 1 ubuntu ubuntu 6958387 Jan 19 12:21 DSC_0316.JPG -rwxr----- 1 ubuntu ubuntu 6463855 Jan 19 12:21 DSC_0317.JPG -rwxr----- 1 ubuntu ubuntu 6614855 Jan 19 12:21 DSC_0318.JPG -rwxr----- 1 ubuntu ubuntu 5931738 Jan 19 12:21 DSC_0319.JPG |
使用 find、xargs 这样的工具可以压缩你指定的一些文件。
ubuntu@VM-166-1-ubuntu:~/images$ find . -name "*.JPG" | xargs jpegoptim DSC_0310.JPG 6000x4000 24bit N Exif [OK] 6680532 -- 5987094 bytes (10.38%), optimized. DSC_0311.JPG 6000x4000 24bit N Exif [OK] 6846248 -- 6167842 bytes (9.91%), optimized. DSC_0312.JPG 6000x4000 24bit N Exif [OK] 7174430 -- 6536500 bytes (8.89%), optimized. DSC_0313.JPG 6000x4000 24bit N Exif [OK] 6514309 -- 5909840 bytes (9.28%), optimized. DSC_0314.JPG 6000x4000 24bit N Exif [OK] 6755589 -- 6144165 bytes (9.05%), optimized. DSC_0315.JPG 6000x4000 24bit N Exif [OK] 6789763 -- 6090645 bytes (10.30%), optimized. DSC_0316.JPG 6000x4000 24bit N Exif [OK] 6958387 -- 6354320 bytes (8.68%), optimized. DSC_0317.JPG 6000x4000 24bit N Exif [OK] 6463855 -- 5909298 bytes (8.58%), optimized. DSC_0318.JPG 6000x4000 24bit N Exif [OK] 6614855 -- 6016006 bytes (9.05%), optimized. DSC_0319.JPG 6000x4000 24bit N Exif [OK] 5931738 -- 5337023 bytes (10.03%), optimized.1 2 3 4 5 6 7 8 9 10 11 12 | ubuntu@VM-166-1-ubuntu:~/images$ find . -name "*.JPG" | xargs jpegoptim DSC_0310.JPG 6000x4000 24bit N Exif [OK] 6680532 -- 5987094 bytes (10.38%), optimized. DSC_0311.JPG 6000x4000 24bit N Exif [OK] 6846248 -- 6167842 bytes (9.91%), optimized. DSC_0312.JPG 6000x4000 24bit N Exif [OK] 7174430 -- 6536500 bytes (8.89%), optimized. DSC_0313.JPG 6000x4000 24bit N Exif [OK] 6514309 -- 5909840 bytes (9.28%), optimized. DSC_0314.JPG 6000x4000 24bit N Exif [OK] 6755589 -- 6144165 bytes (9.05%), optimized. DSC_0315.JPG 6000x4000 24bit N Exif [OK] 6789763 -- 6090645 bytes (10.30%), optimized. DSC_0316.JPG 6000x4000 24bit N Exif [OK] 6958387 -- 6354320 bytes (8.68%), optimized. DSC_0317.JPG 6000x4000 24bit N Exif [OK] 6463855 -- 5909298 bytes (8.58%), optimized. DSC_0318.JPG 6000x4000 24bit N Exif [OK] 6614855 -- 6016006 bytes (9.05%), optimized. DSC_0319.JPG 6000x4000 24bit N Exif [OK] 5931738 -- 5337023 bytes (10.03%), optimized. |
现在你应该会使用 jpegoptim 对需要的 jpeg 图片进行压缩了。还有更多的详细用法,你可以查看 jpegoptim 的 man 手册。
$ man jpegoptim1 2 | $ man jpegoptim |
安装 OptiPNG
Debian 系列
$ sudo apt-get install optipng1 2 | $ sudo apt-get install optipng |
RedHat 系列
与上面一样需要 epel
$ sudo yum install optipng $ sudo dnf install optipng [On Fedora 22+ versions]1 2 3 | $ sudo yum install optipng $ sudo dnf install optipng [On Fedora 22+ versions] |
optipng 用法
用法依然很简单。
$ optipng filename.png $ optipng [options] filename.png1 2 3 | $ optipng filename.png $ optipng [options] filename.png |
以 LS.png 为例,演示 optipng 命令。
buntu@VM-166-1-ubuntu:~/images$ optipng LS.png OptiPNG 0.6.4: Advanced PNG optimizer. Copyright (C) 2001-2010 Cosmin Truta. ** Processing: LS.png 1500x541 pixels, 4x8 bits/pixel, RGB+alpha Input IDAT size = 806781 bytes Input file size = 809112 bytes Trying: zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 732923 zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 695518 zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 670355 Selecting parameters: zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 670355 Output IDAT size = 670355 bytes (136426 bytes decrease) Output file size = 672098 bytes (137014 bytes = 16.93% decrease) ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.png 664K LS.png1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | buntu@VM-166-1-ubuntu:~/images$ optipng LS.png OptiPNG 0.6.4: Advanced PNG optimizer. Copyright (C) 2001-2010 Cosmin Truta. ** Processing: LS.png 1500x541 pixels, 4x8 bits/pixel, RGB+alpha Input IDAT size = 806781 bytes Input file size = 809112 bytes Trying: zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 732923 zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 695518 zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 670355 Selecting parameters: zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 670355 Output IDAT size = 670355 bytes (136426 bytes decrease) Output file size = 672098 bytes (137014 bytes = 16.93% decrease) ubuntu@VM-166-1-ubuntu:~/images$ du -sh LS.png 664K LS.png |
正如你看到的, optipng 的压缩效果相当好,并且几乎没有质量损失。
同 jpegoptim 一样,你依然可以将 optipng 与现有的 find 、xargs 等命令组合起来进行批量 png 图片压缩。甚至你可以写一个脚本对你上传到网站的图片进行自动压缩。
更多细节,可以查看 optipng 的 man 手册。
$ man optipng1 2 | $ man optipng |
小结
LinuxStory 上有很多 jpeg 、png 图片。并且由于历史原因这些图片都很少被压缩。通过这样的工具对网站所有图片压缩后,节约了 30% 的磁盘空间。那么读者你是否也需要对你的照片压缩呢?赶紧试试吧!
原文链接:https://www.tecmint.com/optimize-and-compress-jpeg-or-png-batch-images-linux-commandline/
本文链接:https://linuxstory.org/optimize-and-compress-jpeg-or-png-batch-images-linux-commandline/
转载请注明出处,否则必究相关责任。
- linux的gzip、bzip2、xz三种压缩使用方法工具介绍
- 图片无损压缩工具Image Optimizer5.0绿色版下载
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- Linux压缩打包介绍,gzip压缩工具,bzip2压缩工具,xz压缩工具
- 好工具分享:CxImage图片无损批量压缩大师
- 图片无损压缩工具
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- 常用的图片压缩工具/脚本介绍
- linux的zip、tar压缩打包工具介绍
- Caesium v1.5.0 中文单文件绿色版(图片批量无损压缩工具)
- 在线的图片、js、css压缩优化工具介绍
- Linux压缩和解压缩工具及归档工具介绍
- day18--linux下gzip、bzip2、zip、xz三种压缩工具的介绍
- 一个不错的 png压缩工具 pngquant 使用介绍 批量压缩png
- [汉化资料] 字库图片生成工具Bitmap font Generator介绍
- HTML转PDF工具(wkhtmltopdf)介绍,支持widows和linux
- linux 文件查找和压缩工具
- c# 无损高质量压缩图片代码
- 关于Linux操作系统Fdisk工具的使用介绍