在 Linux 中调整图像大小

在 Linux 中调整图像大小

我有各种文件夹,其中的高分辨率图像大小超过 6000 像素 x 4000 像素。有些是 5000px x 3000px,大小因文件夹而异。我想调整所有图像的大小以节省加载时间/处理/内存空间等资源。我想将所有图像保持在最小 3000x2000 最大 3500x2200 左右。我如何使用 imagemagick 批量执行此操作,替换原始内容。有人建议我在 ubuntu 上使用 imagemagick 和 morgify ?

早些时候,当我拥有 Windows PC 时,我使用 photoizer 软件。逐个选择文件夹,然后用jpegMini软件处理图像。因此 5 mb 照片的大小会减少到 1.5 mb 左右。每个文件夹包含不同分辨率的图像。这是一个耗时很长的过程。对于每个文件夹,我必须减少 fotosizer 的百分比,以将图像大小保持在 3000*2000 左右,或多或少保持纵横比。

答案1

下面的命令(无论是在脚本中还是从命令行运行)都将调整当前文件夹以及当前文件夹的任何子文件夹中的所有图像的大小。

find . -type f | grep -i -e '\.png$' -e '\.jpg$' -e '\.gif$` | xargs -I ___ mogrify -resize '3500x2200>' ___

如果当前文件夹下面的文件夹中的所有常规文件都是图像,您可以跳过 grep 步骤,如果不是,您将需要修改它以包含所有且仅包含您必须处理的扩展名(–我假设 png 、 jpg 和 gif 显然)。使其-i不区分大小写。

根据您的需要更改“3500x2200”。它将保持纵横比并在这些尺寸上达到最大值。

如果有些是横向的,有些是纵向的,并且您不想歧视纵向的,而只是希望较大的尺寸在 3500 左右,那么“3500x3500”可能更有意义。

“>”表示它不会调整大小,只会调整大小。

您还可以添加类似-quality 90%after 的内容mogrify,通过降低质量来减小文件大小。

mogrify按照您的要求覆盖原始文件,因此在扣动扳机之前请确保您确实想要执行此操作。

答案2

...有点晚了,但也许它可能对其他人有帮助:在 Ubuntu 上我使用交谈(在软件中可用)。它与 Fotosizer(图形界面)非常相似,并且可以完成您正在寻找的工作。

相关内容