当前位置: 首页>>技术教程>>正文


用于Ubuntu的图像调整大小工具

,

问题描述

我大约有500张图像,我需要将每个图像调整为6种不同的尺寸。可以有任何脚本或软件。而且我的平台是ubuntu。

最佳方法

请尝试使用ImageMagick。首先,安装它:

$ sudo apt-get install imagemagick

然后,您可以制作一些bash脚本以将它们转换为6种尺寸:

#!/bin/bash

# List all the formats you wish to have
SIZES="640x480 800x600 1024x768"

# pass directory as first argument to the script
# Use '.' (current directory) if no argument was passed
DIR=${1:-.}

find $DIR -type f | while read file; do
   for size in $SIZES; do
      # Resize and rename DSC01258.JPG into DSC01258_640x480.JPG, etc.
      # Remove the ! after $size if you do not wish to force the format
      convert -resize "${size}!" "$file" "${file%.*}_${size}.${file##*.}"
   done
done

将脚本另存为,例如convert.sh,然后运行:

chmod +x convert.sh
./convert.sh /path/to/directory # path is optional, it takes '.' as default

编辑:我编辑了脚本以确保在调整大小时不覆盖文件,而是将其重命名为例如DSC01258_640x480.JPG,并使用convert而不是mogrify,因为实际上已重命名了文件。我还对变量进行了一些消毒,没有受到伤害。

我用png文件测试了脚本,并且效果很好。它应该适用于ImageMagick支持的所有图像格式:

$ file wave_bible_bot/*
  wave_bible_bot/wave_bible_bot1.png: PNG image, 516 x 308, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot2.png: PNG image, 515 x 428, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot3.png: PNG image, 565 x 384, 8-bit/color RGB, non-interlaced

$ ./resize.sh wave_bible_bot/

$ file wave_bible_bot/*
  wave_bible_bot/wave_bible_bot1_1024x768.png: PNG image, 1024 x 768, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot1_640x480.png:  PNG image, 640 x 480, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot1_800x600.png:  PNG image, 800 x 600, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot1.png:          PNG image, 516 x 308, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot2_1024x768.png: PNG image, 1024 x 768, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot2_640x480.png:  PNG image, 640 x 480, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot2_800x600.png:  PNG image, 800 x 600, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot2.png:          PNG image, 515 x 428, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot3_1024x768.png: PNG image, 1024 x 768, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot3_640x480.png:  PNG image, 640 x 480, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot3_800x600.png:  PNG image, 800 x 600, 8-bit/color RGB, non-interlaced
  wave_bible_bot/wave_bible_bot3.png:          PNG image, 565 x 384, 8-bit/color RGB, non-interlaced

次佳方法

如果按照Sathya的说明安装ImageMagick,则有一个不错的GUI前端,名为nautilus-image-converter,可以轻松调整大小。

要安装它:

sudo apt-get install nautilus-image-converter

重新启动 nautilus (或注销并重新登录)。它将在您的上下文菜单中添加”Resize Images”和”Rotate Images”,如下所示:

只需突出显示要调整大小的所有图像,单击鼠标右键,选择“调整图像大小”,您将获得以下界面:

使用”Append”选项并将自定义名称添加到调整大小的图像中。您可能需要附加大小,例如1024×768,或者可以在不同文件夹中制作6张图像副本,然后在每个文件夹中的图像上使用“在适当位置调整图像大小”选项以使用具有不同尺寸的新图像覆盖它们。在适当位置调整图像大小将始终覆盖所选图像,因此请小心选择!

第三种方法

您可以使用ImageMagick:首先安装ImageMagick

sudo apt-get install imagemagick

接下来,cd到图像所在的位置:

cd /path/to/where/images/are/stored

接下来,根据您的图片大小创建目录

mkdir /path/to/where/images/are/stored/size

将图像复制到要转换的目录中

cp /path/to/where/images/are/stored/* /path/to/where/images/are/stored/size

接下来,将目录更改为其他目录

cp /path/to/where/images/are/stored/size

然后,使用ImageMagick库提供的名为mogrify的工具来调整大小

mogrify -resize 640×480! *.jpg

这会将所有大小调整为640*480!告知强制长宽比。

我不知道Bash脚本,所以它不是那么自动化。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11246.html,未经允许,请勿转载。