如何通过终端调整图像大小?

我有Ubuntu 10.04。 我使用以下命令通过终端转换了图像:

convert myfigure.png myfigure.jpg 

但我想调整转换后图像的高度和宽度。 有没有办法做到这一点?

相同的命令,有一个额外的选项:

 convert myfigure.png -resize 200x100 myfigure.jpg 

要么

 convert -resize 50% myfigure.png myfigure.jpg 

要调整多个文件的大小,可以尝试以下命令(如@ test30所示 )

 find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}" 

如果您只想要CLI:

 sudo apt-get install imagemagick mogrify -resize 320x240 Image.png mogrify -resize 50% Image.png mogrify -resize 320x240 *.jpg 

如果你想尝试GUI:

安装nautilus-image-converter

 sudo apt-get install nautilus-image-converter 

它在nautlius中添加了两个上下文菜单项,因此您可以右键单击并选择“调整图像大小”。(另一个是“旋转图像”)。

如果您愿意,您可以一次性完成整个图像目录,甚至不需要打开应用程序。

由于Ubuntu附带了Python,您还可以使用Python脚本来实现这一点,并对发生的事情进行更多控制 – 请参阅此stackoverflow问题以获取示例脚本。 这些示例仅使用标准库。

脚本#1

 import os, sys import Image size = 128, 128 for infile in sys.argv[1:]: outfile = os.path.splitext(infile)[0] + ".thumbnail" if infile != outfile: try: im = Image.open(infile) im.thumbnail(size, Image.ANTIALIAS) im.save(outfile, "JPEG") except IOError: print "cannot create thumbnail for '%s'" % infile 

另一个例子,你只需要指定宽度(作为宽度变量):

脚本#2

 from PIL import Image import sys filename = sys.argv[1:] basewidth = 300 img = Image.open(filename) wpercent = (basewidth/float(img.size[0])) hsize = int((float(img.size[1])*float(wpercent))) img = img.resize((basewidth,hsize), Image.ANTIALIAS) img.save(filename) 

现在,如何通过终端这样做……

 sudo nano resizescript.py 

将其中一个代码块粘贴到文本编辑器中。 按Ctrl + x退出(说是保存更改)。

要使用脚本#1:

 python resizescript.py yourfilenamehere.jpg 

要使用脚本#2:

 python resizescript.py yourfilenamehere.jpg 

您必须与这两个脚本的图片文件位于同一目录中。 第一个将图像缩小为128×128像素。 第二个脚本使其宽300像素并计算比例高度。 这更像是一个Python答案,但它是通过终端在技术上完成的。

imgp是一个相对较新的实用程序,可以进行图像resize和旋转。 它比nautilus-image-converter有更多的function。