如何在 Linux 命令行中优化和压缩 JPEG 或 PNG 图像如何在 Linux 命令行中优化和压缩 JPEG 或 PNG 图像如何在 Linux 命令行中优化和压缩 JPEG 或 PNG 图像如何在 Linux 命令行中优化和压缩 JPEG 或 PNG 图像
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

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

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

  1. jpegoptim – 是一个在不损失质量的情况下优化/压缩 JPEG 文件的实用程序。
  2. OptiPNG – 是一个小程序,可以将 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 命令找出图像的实际大小,如图所示。

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

这里实际文件大小是6.2MB,现在通过运行压缩该文件:

jpegoptim tecmint.jpeg 

在任何图像查看器应用程序中打开压缩图像,您不会发现任何重大差异。源图像和压缩图像将具有相同的质量。

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

例如,让我们将上面的图像从 5.6MB 压缩到 250k 左右。

jpegoptim --size=250k tecmint.jpeg

批量 JPEG 图像压缩和优化

你可能会问如何压缩整个目录下的图片,这也不难。转到包含图像的目录。

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

然后运行以下命令一次性压缩所有图像。

tecmint@tecmint ~/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 图像,但在优化之前,首先检查图像的实际大小,如下所示:

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

这里上图的实际文件大小是350K,现在通过运行压缩该文件:

tecmint@tecmint ~/img $ optipng tecmint.png 
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.

** Processing: tecmint.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%。现在使用以下命令再次验证文件大小:

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

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

批量 PNG 图像压缩和优化

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

tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/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

结论

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

如果您知道任何其他更好的方法来实现相同的目标,请通过评论告诉我们,并且不要忘记在您的社交网络上分享这篇文章并支持我们。

©2015-2025 艾丽卡 support@alaica.com