如何通过命令行轻松调整图像大小?

我想知道如何在Ubuntu中调整图像大小。最简单的工具是什么?

http://sourcedigit.com/20632-install-converseen-on-ubuntu-16-04-batch-image-resizer-converter-for-linux/ - Ferroao
相关:Ubuntu的图像调整工具 - kenorb
14个回答

首先通过以下方式安装ImageMagick
sudo apt-get install imagemagick

打开终端并运行以下命令:
convert  -resize 20% source.png dest.jpg

它将减小尺寸至20%。
请注意,这并不是减小了20%。
结果图像将会更小,为原来尺寸的20%,
而不是比之前小20%,也不是更小。

您还可以指定尺寸:

convert -resize 1024X768  source.png dest.jpg

你还可以使用同一个软件包中的mogrify命令行工具

6该命令将尺寸减小到50%,而不是减少50%。 - Matthias Weiler
@MatthiasWeiler 这两个是完全一样的,不太清楚你的意思。 - Alexander Mills
13它们只在50%的特殊情况下相同。 -resize 10%会使您的图像变小90%。 - Matthias Weiler
如果您收到“没有定义图像”的错误,很可能是因为您没有定义目标图像... 例如,在上面的示例中,“dest.jpg”是必需的 :) - Ramesh Pareek
你也提到了 mogrify;这里是它的区别:https://deparkes.co.uk/2015/03/16/useful-imagemagick-commands/ - mattia.b89
我写了一个小脚本,使用ImageMagick的"convert"命令来处理关于源目录和目标目录的繁琐事务,以便在需要转换多张图片时使用:https://gist.github.com/dtonhofer/6c44186d65d3b15784b64096e60195a0 - David Tonhofer
re: 批处理 (1) https://unix.stackexchange.com/a/516440 (2) http://www.imagemagick.org/Usage/basics/#mogrify_not - michael
可能应该是dest.png,以匹配源图像的格式。 - Will
mogrify 覆盖原图片,而 convert 则创建一个新文件。 - Timo
更好的压缩结果可以通过使用optipng来实现参考链接 - Nam G VU
看起来默认压缩率是80%(精度8)-- https://stackoverflow.com/questions/2024947/is-it-possible-to-tell-the-quality-level-of-a-jpeg 我个人认为,如果质量真的很重要,那么你应该选择90%,但80%对于大多数用途来说已经足够了。 - PJ Brunet

nautilus-image-converter 是一个用于批量调整大小或旋转图像的 Nautilus 扩展。要在当前所有支持的 Ubuntu 版本中安装 nautilus-image-converter,请打开终端并输入以下命令:
sudo apt install nautilus-image-converter

它在Nautilus中添加了两个上下文菜单项,这样您就可以右键单击并选择“调整图片大小”(另一个是“旋转图片”)。
如果您愿意,您甚至可以一次处理整个图像目录,而无需打开任何应用程序。
要查看新的上下文菜单,您需要重新启动Nautilus,运行“nautilus -q”,然后点击Home文件夹图标,以加载带有新插件的Nautilus。

它是否支持多个选择(例如,我选择10个文件 - 右键单击 - 选择旋转 - 然后这10个图像都会被旋转)? - teo96
我不确定是否需要重新启动。我刚刚安装了它,关闭了所有的文件管理器窗口并打开了新的窗口,但是我没有这个选项。我需要在重新启动后再次检查一下。 - Damian Melniczuk
2在Ubuntu 13.10上无法工作 :( - malisokan
1在 Fedora 20 中也能很好地工作。sudo yum install nautilus-image-converter。 - Greg Sheremeta
安装了但似乎在14.04版本中也无法正常工作 :( - cboettig
4它在Ubuntu 14.04上运行正常。谢谢。 - Saeed Zarinfam
10我认为在安装之后你需要退出或重新启动--或者就像我一样做;运行pkill nautilus,然后点击主文件夹图标以重新加载带有新插件的nautilus。 - Lambart
2...或者只需像我上次评论中提到的那样运行nautilus -q。 :) - Lambart
值得注意的是,对于Cajaj也有一个(显然相同的)东西sudo apt-get install caja-image-converter - Frank N
2因为这需要与图形用户界面进行交互,尽管楼主要求使用命令行工具,所以被踩了。 - byxor
1错误的答案会被踩。在命令行中无法运行。 - 777Anon
在Ubuntu 21.04命令行上工作过。非常棒的工具,正是我所需要的!谢谢 :) - thomas77
更好的压缩结果可以使用 optipng 参考链接 - Nam G VU

sudo apt-get install imagemagick

命令mogrify将调整大小后的图像覆盖原始文件:
mogrify -resize 50% *.png      # keep image aspect ratio
mogrify -resize 320x240 *.png  # keep image aspect ratio
mogrify -resize 320x240! *.png # don't keep image aspect ratio
mogrify -resize x240 *.png     # don't keep image aspect ratio
mogrify -resize 320x *.png     # don't keep image aspect ratio

注意:您可以添加-auto-orient以自动调整转换后的图像方向。

不要使用convert命令来保持纵横比:convert hospital.jpg -resize 2000x! hospital_2000.jpg - Adobe
2完美且最简单的回答,适用于两种情况。太喜欢了! - navderm
4初始图像已被新调整大小的图像所替换。如果您需要初始图像,请备份。 - user47206
320x确实保持了图像的纵横比。它会根据比例设置合适的高度值。也许你在这里弄混了什么? - phil294
更好的压缩结果可以通过使用optipng来实现参考链接 - Nam G VU

如果你只是处理几张图片,Ubuntu上的大多数图像编辑器(如Gimp、F-Spot等)都可以让你进行基本的调整大小。
如果你想编辑成十个、百个或者千个图片,我推荐使用Phatch。Phatch是一个基于GUI的批量照片编辑器,它可以让你对图片进行各种转换操作。sudo apt-get install phatch ImageMagick也不错,但如果你不知道设置名称,可能会有些繁琐。而通过点击操作,你可以很快学会使用Phatch。

F-Spot可以调整大小吗?在哪里? - Martin
在安装phatch的过程中,我的Chrome浏览器关闭了,我无法重新启动它,我不得不删除phatch和其他它安装的软件包,才能使Chrome恢复正常工作状态。 - mallaudin

ImageMagick是您想要的软件包。它包含许多有用的命令行工具,非常适合这个目的。

这里有一个简单的教程,解释了如何批量调整图像大小:

mogrify -resize 320x240 *.jpg

完成此命令后,所有图像将被替换为其调整大小的版本。请注意,为了保持图像的纵横比,mogrify可能无法生成完全符合320x240尺寸的图像。要强制执行此操作,请在所需分辨率的末尾加上一个感叹号来修改原始命令:
mogrify -resize 320x240! *.jpg

更好的压缩结果可以通过使用optipng来实现参考链接 - Nam G VU

不需要安装任何新软件,只需按照以下步骤操作即可。
convert -resize 50% myfigure.png myfigure.jpg

或者

convert myfigure.png -resize 200x100 myfigure.jpg

5除了ImageMagick这个包含convert的软件包之外,不需要安装任何新的软件。 - Chris Jenks
更好的压缩结果可以使用optipng来实现参考 - Nam G VU

目前nautilus-image-converterUbuntu 13.10上无法使用。因此我在命令行上使用imagemagick,这是一个非常好的解决方法(至少对我来说是这样)。

sudo apt-get install imagemagick

记住这些ImageMagick工具之间的区别:
- Mogrify在同一张图片上进行处理,它读取文件、修改文件并将输出写入同一文件。 - Convert用于处理不同的图片,它读取文件并修改后写入不同的文件/格式。您还可以使用convert命令将输出文件与输入文件相同。
我经常使用mogrify来简单地调整多个图像的大小并覆盖原始文件。例如,以下命令会将所有JPG文件的尺寸缩小到原始尺寸的40%:
mogrify -verbose -resize '40%' *.JPG

更好的压缩结果可以使用 optipng 参考 - Nam G VU

GIMP可能是最简单的方法,因为它对于这种常见任务有一个相当简单的用户界面。你只需要打开你的图像,然后转到图像→图像大小,然后相应地进行更改。使用GIMP也有批量调整大小的方法,但我不熟悉。


安装gthumb。简单易用,适用于基本的图像处理和编辑功能 - 查看器、调整大小、裁剪、旋转、翻转、灰度等,并提供保存为JPEG、PNG、TIFF、TGA格式的选项。
要安装gthumb:
- 打开终端 - 输入sudo apt-get install gthumb - 接受更改

1在Linux Mint上,这对我来说是最佳解决方案。 - Fedir RYKHTIK
我习惯使用gthumb来旋转我的照片。 - Arpad Horvath
请在您的解决方案中添加提示,您可以在gthumb->preferences->Viewer下设置图像重新加载后的缩放行为。这对于svg文件也非常有效。当使用从matplotlib生成的图形时,真的救了我的命... - newandlost

你还可以使用无处不在的ffmpeg(或avconv)工具来调整图像大小:
ffmpeg -i image.jpg -s 4096x2048 image-resized.jpg

如果你想要非常快速地调整JPEG图像大小,可以尝试使用epeg(如此处那里所提到的)- 需要从源代码构建。

质量与ImageMagick的convert和mogrify相比非常好。这是我最喜欢的一个。 - fsevenm
更好的压缩结果可以通过使用optipng来实现参考链接 - Nam G VU