如何在终端内递归地批量调整Ubuntu中的图像?

Com*_*org 32 ubuntu image imagemagick ubuntu-11.10

我有多个图像存储在一组有组织的文件夹中.我需要从父目录递归地将这些图像的大小重新调整为特定的百分比.我正在运行Ubuntu 11.10,我更喜欢直接从终端学习如何做到这一点.

bet*_*ido 72

你可以使用imagemagick.例如,要将当前目录下的所有JPG图像调整为其原始大小的50%,您可以执行以下操作:

for f in `find . -name "*.jpg"`
do
    convert $f -resize 50% $f.resized.jpg
done
Run Code Online (Sandbox Code Playgroud)

生成的文件名称中将包含两次".jpg".如果这是一个问题,您可以检查以下备选方案.

要遍历/查找要调整大小的文件,您也可以使用xargs.例:

find . -name "*.jpg" | xargs convert -resize 50%
Run Code Online (Sandbox Code Playgroud)

这将创建图像的副本.如果您只是想将它们转换到位,您可以使用:

find . -name "*.jpg" | xargs mogrify -resize 50%
Run Code Online (Sandbox Code Playgroud)


ste*_*nbc 11

您还可以使用

sudo apt install imagemagick
sudo apt-get install nautilus-image-converter
nautilus -q
Run Code Online (Sandbox Code Playgroud)

用于调整当前文件夹中的图像大小/旋转。您只需安装,然后右键单击一个或多个图像并选择您想要的大小即可。这nautilus -q是为了阻止鹦鹉螺号。只需再次启动 nautilus,您就可以使用图像转换器了。


小智 5

扩展@betabandido的答案

如果图像在文件名或文件夹名称中有空格,则应将-print0与find配合使用-0与xargs配合使用,以避免任何解析错误。

find . -name "*.jpg" -print0 | xargs -0 convert -resize 50%
find . -name "*.jpg" -print0 | xargs -0 mogrify -resize 50%
Run Code Online (Sandbox Code Playgroud)

  • 使用“quality”也可以:“find . -名称“*.jpg”-print0 | xargs -0 mogrify -质量 70%` (2认同)