使用 Jpegoptim 在 Ubuntu 中优化 JPEG/JPG 图像
当今智能手机和数码相机等照片捕捉设备的图像分辨率日益提高。当我们必须共享这些图像、将它们上传到云设施,甚至将它们保存在存储空间有限的设备上时,真正的问题就来了。图形设计师也必须处理同样的问题,但他们配备了可以压缩图像的工具,以便可以轻松地与利益相关者共享。
对于 Ubuntu,有许多图形实用程序可以让您优化和压缩 jpeg,但在这里我们将讨论一个名为 Jpegoptim 的命令行工具。这对于喜欢使用最少系统资源执行任务的精通终端的人来说特别有用。 Jpegoptim 可以帮助您在有或没有质量损失的情况下压缩 jpegs、jpg 和 jfif 文件,具体取决于您要寻找的内容。
在本文中,我们将介绍如何在 Ubuntu 上安装命令行实用程序 Jpegoptim。我们还将解释您可以使用此应用程序来优化和压缩 jpeg 图像文件的各种方法。本文还将使您能够编写和执行 bash 脚本,该脚本将自动压缩位于单个目录中的所有 jpeg 的过程。
我们已在 Ubuntu 18.04 LTS 系统上运行本文中提到的命令和过程。
在 Ubuntu 上安装 Jpegoptim
Jpegoptim 可以通过官方 Ubuntu 存储库轻松获得,并且可以使用 apt-get 命令通过命令行轻松安装。
通过系统应用程序启动器搜索或通过 Ctrl+Alt+T 快捷方式打开终端应用程序。
下一步是通过以下命令更新系统的存储库索引:
sudo apt-get update
这可以帮助您从 Internet 安装最新可用版本的软件。请注意,只有授权用户才能在 Ubuntu 上添加、删除和配置软件。
现在您已准备好安装Image Jpegoptim;您可以通过以 sudo 身份运行以下命令来执行此操作:
sudo apt-get install jpegoptim
系统可能会询问您 sudo 的密码,并为您提供是/否选项以继续安装。输入Y然后回车;该软件将安装在您的系统上。但是,该过程可能需要一些时间,具体取决于您的互联网速度。
您可以通过以下命令检查应用程序的版本号,并验证它是否确实安装在您的系统上:
jpegoptim --version
使用 Jpegoptim 进行图像压缩
现在让我们通过以下方式来探索 Jpegoptim 的强大功能:
无损压缩单个图像
如果您想压缩单个图像而不希望影响质量,请使用以下命令:
$jpegoptim image_name.jpg
例子 :
jpegoptim sample.jpg
注意:请记住,该工具会覆盖现有图像,因此最好将原始图像保存在其他位置。
如果您希望进一步压缩图像,可以再次运行相同的命令。但是,如果达到最大压缩无损图像质量的限制,Jpegoptim 将开始跳过压缩。
在这种情况下,输出如下所示:
将图像压缩到另一个文件夹
如果您担心 Jpegoptim 会覆盖原始图像而丢失原始图像,您可以告诉该工具将压缩图像保存到另一个文件夹。
首先,创建一个要保存压缩图像的文件夹。如果您希望将它们保存到现有文件夹中,则无需创建新文件夹。然后,您可以使用以下命令语法来执行压缩:
$jpegoptim -d ./[目标文件夹] -p [图像名称].jpg
例如:
jpegoptim -d ./compressed -p sample.jpg
上面的命令将压缩我的sample.jpg文件并将其保存到一个名为“compressed”的现有文件夹中。
检查潜在的压缩
如果您想事先了解图像能够被压缩多少,可以通过 Jpegoptim 模拟图像压缩。以下命令实际上不会压缩图像,它只会告诉您如果您尝试使用 Jpegoptim 压缩图像,图像将被压缩多少。
下面的例子将进一步解释这个过程:
我有一个名为sample.jpg 的jpg 图像。我先通过du命令打印它的大小,如下:
du sample.jpg
然后,我将使用 jpegoptim 命令的 -n 标志来了解其潜在的压缩。
jpegoptim -n sample.jpg
当我使用上述 jpegoptim 命令后重新检查其大小时,我发现其大小没有变化。这可确保带有 -n 标志的 jpeg 命令仅显示未来的压缩百分比和大小,而不实际压缩图像。
压缩图像“但”会造成质量损失
有时我们想要压缩图像,但知道该过程不会是无损的。好处是,使用 Jpegoptim,您可以指定可以接受的质量损失程度。有两种方法可以“有损地”压缩图像;
1.使用 -m 标志指定质量因数/百分比: 设置最大图像质量因数(禁用无损优化模式,默认情况下启用)。此选项将降低使用较高质量设置保存的源文件的质量。而已经具有较低质量设置的文件将使用无损优化方法进行压缩。
以下是指定压缩百分比的方法:
jpegoptim -m[percentage_in_numbers] image.jpg
这是我的原始图像:
这就是 10% 品质因数的情况:
2.使用 --size 选项指定压缩图像的大小:尝试将文件优化到给定大小(禁用无损优化模式)。目标大小以千字节 (1 - n) 为单位指定
或原始文件大小的百分比 (1% - 99%)。
您可以通过以下方式指定结果图像的大小(以 kbs 为单位):
jpegoptim --size=[size-in-kb] image_name.jpg
批量优化图像文件
您可以通过多种方式使用 Jpegoptim 一次压缩多个文件。
第一个是在单个 jpegoptim 命令中指定要压缩的所有文件,如下所示:
jpegoptim file1.jpeg file2.jpg file3.jpg
该命令将覆盖所有指定的文件和新压缩的文件。
第二种方法是告诉 Jpegoptim 压缩特定类型的所有文件,例如 jpg,所有文件都位于同一文件夹中:
jpegoptim *.jpg
为了了解此命令的工作原理,我使用 -l 标志列出了 Pictures 文件夹中的所有文件。此命令将打印当前文件夹中所有图像的总大小:
ls -l
然后我使用相同的 ls -l 命令来查看 Jpegoptim 命令对所有文件的总大小有多大差异。您可以在以下输出中看到总字节数的显着差异:
这些只是两个文件;这样你可以节省很多空间。整个过程的美妙之处在于您不会牺牲宝贵图像的质量。当然,您可以对 Jpegoptim 支持的其他文件格式执行相同的操作。
第三个也是一个非常有用的选项是,您甚至可以使用 shell 脚本自动压缩当前目录中单一类型的所有文件。操作方法如下:
Bash脚本压缩当前目录中的所有jpg文件
本节将解释如何编写一个 shell 脚本,将当前目录中的所有 jpg 压缩到名为“compressed”的文件夹中。该脚本不会创建该文件夹;它只会将输出保存到已创建的以此名称的文件夹中。
首先,移动到我们将在其中创建脚本的 Documents 文件夹:
cd Documents
注意:您可以将脚本保存在任何您喜欢的位置。建议您在同一文件夹中创建所有脚本,这样您就不会忘记保存它们的位置。我个人更喜欢将所有脚本保存在“文档”文件夹中。
创建脚本
在您最喜欢的文本编辑器之一中打开一个新的脚本文件。我们将使用 nano 编辑器打开一个名为 compressAll.sh 的空脚本文件
nano compressAll.sh
在该空文件中,添加以下脚本。
#!/bin/sh
compress all *.jpg files in the current directory
and place them in ./compressed directory
with the same modification date as original files.
for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done
提示:您可以从此处复制它并使用 Ctrl+Shift+V 或使用右侧的“粘贴”选项将其粘贴到终端中,而不是将整个脚本输入到 bash 文件中 -单击菜单。
您的文件如下所示:
现在,通过 Ctrl+X 快捷键退出文件。然后,系统会要求您将文件保存在“保存修改的缓冲区?”中。 “ 迅速的。输入 Y 然后按 Enter 键;您的脚本文件现已保存在当前文件夹中。
为了使当前用户可执行该文件,请在终端中运行以下命令:
chmod +x compressAll.sh
为了运行该脚本,请将当前目录更改为要压缩其 jpg 的目录(在我的例子中为 Pictures 目录)。确保该目录包含名为“compressed”的文件夹。如果不存在,请在运行脚本之前创建一个。
运行脚本
最后,运行脚本如下:
/home/[username]/Documents/compressAll.sh
此命令将从您创建的文件夹中执行 bash 脚本。这就是您必须指定该 .sh 文件的完整路径的原因。
您将看到所有压缩文件都将写入“compressed”文件夹中。您可以通过以下命令验证这一点:
ls compressed
这都是关于通过 Jpegoptim 实用程序进行图像优化的。有关更多详细信息,您可以通过以下命令查看联机帮助页:
man jpegoptim
现在,通过互联网共享图像并将其上传到带宽和存储受限的位置应该不成问题