如何在Linux命令行中优化和压缩JPEG或PNG图像

在本文中,我们将使用jpegoptim和optipng工具从Linux命令行批量或批量处理压缩和优化jpeg,jpg和png图像。

您有很多图像,并希望优化和压缩图像,而不会失去其原始质量,然后将其上传到任何云或本地存储? 有大量的GUI应用程序可以帮助您优化图像。 但是,这里有两个简单的命令行实用程序来优化图像,它们是:

  1. jpegoptim -是优化/压缩JPEG文件没有松动质量的工具。
  2. 使用OptiPNG -是一个小程序,优化PNG图像,以更小的尺寸,而不会丢失任何信息。
在Linux中压缩和优化映像

在Linux中压缩和优化JPEG和PNG图像

使用这两个工具,您可以一次优化单个或多个图像。

从命令行压缩或优化JPEG图像

jpegoptim是一个命令行工具,可用于优化和压缩的JPEG,JPG和JFIF文件,但不失去其实际质量。 此工具支持无损优化,这是基于优化霍夫曼表。

在Linux中安装jpegoptim

要在你的Linux系统上安装jpegoptim,从终端运行下面的命令。

在Debian和它的衍生品
# apt-get install jpegoptim
or
$ sudo apt-get install jpegoptim
在基于RedHat的系统上

在基于RPM的系统,如RHEL,CentOS ,Fedora的等等,你需要安装并启用EPEL软件库 ,或者也可以从命令行直接安装EPEL软件库,如下所示:

# yum install epel-release
# dnf install epel-release    [On Fedora 22+ versions]

接下来从存储库安装jpegoptim程序,如图所示:

# yum install jpegoptim
# dnf install jpegoptim    [On Fedora 22+ versions]

如何使用Jpegoptim图像优化

jpegoptm的语法是:

$ jpegoptim filename.jpeg
$ jpegoptim [options] filename.jpeg

现在让我们来压缩以下howtoing.jpeg图像,但图像优化之前,先找出使用图像的实际大小杜命令 ,如图所示。

$ du -sh howtoing.jpeg 
6.2M	howtoing.jpeg

这里实际的文件大小为6.2MB,现在运行压缩这个文件:

$ jpegoptim howtoing.jpeg 
在Linux中优化JPEG图像

在Linux中优化JPEG图像

在任何图像查看器应用程序中打开压缩图像,您将找不到任何主要差异。 源和压缩的图像将具有相同的质量。

上述命令将图像优化到最大可能的大小。 但是,您可以将给定图像压缩为特定大小,但它会禁用无损优化。

例如,让我们从压缩的5.6MB以上的图像周围25万

$ jpegoptim --size=250k howtoing.jpeg
优化图像修复大小

优化图像修复大小

批量JPEG图像压缩和优化

你可能会问如何压缩整个目录中的图像,这也不难。 转到您拥有图像的目录。

howtoing@howtoing ~ $ cd img/
howtoing@howtoing ~/img $ ls -l
total 65184
-rwxr----- 1 howtoing howtoing 6680532 Jan 19 12:21 DSC_0310.JPG
-rwxr----- 1 howtoing howtoing 6846248 Jan 19 12:21 DSC_0311.JPG
-rwxr----- 1 howtoing howtoing 7174430 Jan 19 12:21 DSC_0312.JPG
-rwxr----- 1 howtoing howtoing 6514309 Jan 19 12:21 DSC_0313.JPG
-rwxr----- 1 howtoing howtoing 6755589 Jan 19 12:21 DSC_0314.JPG
-rwxr----- 1 howtoing howtoing 6789763 Jan 19 12:21 DSC_0315.JPG
-rwxr----- 1 howtoing howtoing 6958387 Jan 19 12:21 DSC_0316.JPG
-rwxr----- 1 howtoing howtoing 6463855 Jan 19 12:21 DSC_0317.JPG
-rwxr----- 1 howtoing howtoing 6614855 Jan 19 12:21 DSC_0318.JPG
-rwxr----- 1 howtoing howtoing 5931738 Jan 19 12:21 DSC_0319.JPG

然后运行以下命令立即压缩所有图像。

howtoing@howtoing ~/img $ jpegoptim *.JPG
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 DSC_0310.JPG DSC_0311.JPG DSC_0312.JPG 
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.

有关jpegoptim工具的更多详细信息,请查看手册页。

$ man jpegoptim 

从命令行压缩或优化PNG图像

使用OptiPNG是用于优化和压缩PNG(可移植网络图形)文件,而不会失去其原有品质的命令行工具。

使用OptiPNG的安装和使用非常相似jpegoptim。

在Linux中安装OptiPNG

要在你的Linux系统上安装使用OptiPNG,从终端运行下面的命令。

在Debian和它的衍生品
# apt-get install optipng
or
$ sudo apt-get install optipng
在基于RedHat的系统上
# yum install optipng
# dnf install optipng    [On Fedora 22+ versions]

注意 :您必须对您的RHEL / CentOS的为基础的系统启用EPEL软件库安装使用OptiPNG程序。

如何使用OptiPNG图像优化

使用OptiPNG的一般语法是:

$ optipng filename.png
$ optipng [options] filename.png

让我们压缩howtoing.png形象,而且优化之前,先检查图像的实际大小,如下所示:

howtoing@howtoing ~/img $ ls -lh howtoing.png 
-rw------- 1 howtoing howtoing 350K Jan 19 12:54 howtoing.png

在这里,上面的图像的实际文件大小为350K,现在运行压缩这个文件:

howtoing@howtoing ~/img $ optipng howtoing.png 
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: howtoing.png
1493x914 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 357525 bytes
Input file size = 358098 bytes
Trying:
zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211
Selecting parameters:
zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211
Output IDAT size = 249211 bytes (108314 bytes decrease)
Output file size = 249268 bytes (108830 bytes = 30.39% decrease)

正如你在上面的输出看到,howtoing.png文件的大小已降低到30.39%。 现在使用以下方法再次验证文件大小:

howtoing@howtoing ~/img $ ls -lh howtoing.png 
-rw-r--r-- 1 howtoing howtoing 244K Jan 19 12:56 howtoing.png

在任何图像查看器应用程序中打开压缩的图像,您将找不到原始和压缩文件之间的任何主要差异。 源和压缩的图像将具有相同的质量。

批量PNG图像压缩和优化

要一次压缩批量或多个PNG图像,只需转到所有图像所在的目录,然后运行以下命令进行压缩。

howtoing@howtoing ~ $ cd img/
howtoing@howtoing ~/img $ optipng *.png
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: Debian-8.png
720x345 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 95151 bytes
Input file size = 95429 bytes
Trying:
zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388
Selecting parameters:
zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388
Output IDAT size = 81388 bytes (13763 bytes decrease)
Output file size = 81642 bytes (13787 bytes = 14.45% decrease)
** Processing: Fedora-22.png
720x345 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 259678 bytes
Input file size = 260053 bytes
Trying:
zc = 9  zm = 8  zs = 0  f = 5		IDAT size = 222479
zc = 9  zm = 8  zs = 1  f = 5		IDAT size = 220311
zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744
Selecting parameters:
zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744
Output IDAT size = 216744 bytes (42934 bytes decrease)
Output file size = 217035 bytes (43018 bytes = 16.54% decrease)
....

有关使用OptiPNG检查手册页的更多详细信息。

$ man optipng

结论

如果您是网站管理员,并希望通过您的网站或博客提供优化的图片,这些工具可以非常方便。 这些工具不仅节省了磁盘空间,而且还减少了上传图像时的带宽。

如果你知道任何其他更好的方法来实现同样的事情,请让我们知道通过评论,不要忘记分享这篇文章在您的社交网络,并支持我们。