如何将文件夹中的所有图像缩放到相同的宽度?


97

我想将给定文件夹中的所有图像缩放到相同的宽度(但要适当地缩放不同的高度)。如何使用基于GUI或命令行的工具执行此操作?

对于奖励积分,是否可以限制基于其初始宽度缩放的图像(即,仅缩放宽度> x和/或宽度<y的图像)?


avconv可以通过CLI执行此操作-参见:libav.org/avconv.html#scale-1
Geek上

Answers:


152

使用imagemagick非常容易做到这一点。您应该能够在软件中心中安装它。我建议将其用于图像的批处理。

批量调整大小非常简单(我在Ubuntu 11.10上进行了测试)。使用以下命令将每个.jpg文件的大小调整为200像素宽度,并保持宽高比:

$ convert '*.jpg[200x]' resized%03d.png

您可以使用-set选项维护文件名。例如:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

如果您有更多文件,则应与find一起使用

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

这只是在刮擦imagemagick的力量。调整大小可以无休止地进行调整。要更高级地调整大小,您必须使用该-resize选项。

您可以将调整大小限制为缩小

$ convert '*.jpg[300x>]' thumb-300-%03d.png

放大

$ convert '*.jpg[300x<]' thumb-300-%03d.png

请查看几何文档以查看更多选项。


1
为什么将jpg转换为png?
JohnyTex

3
.jpg和.png扩展名只是演示不同格式用法的示例。
半狄

有关-set选项的更多信息:imagemagick.org/script/command-line-options.php ; 基本上,-set <property-name> <value>设置一个属性;%<one-character>%[<one-or-more-characters>]通过ImageMagick的扩大自己的价值; 用于以编程方式确定输出文件名filename:base属性需要以开头,因此我们需要将包含图像路径的属性复制到filename:<something>属性中。
marcotama '17

1
感谢您分享这个技巧,我不知道!
marcotama '17

2
未知的图片属性“%[基本]”
自发布

32

对于GUI,Phatch的 “一键值得千张照片”是进行此类快速工作的最佳选择。它已经在Ubuntu存储库中。

sudo apt-get install phatch
  1. 添加比例并保存项目
  2. 设置比例/调整大小选项
  3. 设置保存/输出选项
  4. 设置输入文件夹
  5. 点击批量执行

在此处输入图片说明 在此处输入图片说明


2
对于赞誉,一个如何实际完成问题中任务的示例将是不错的:)但是,感谢您提供的技巧,这是很好的工具!
jaywink

2
这在我的机器上不起作用(Ubuntu Mate 16.04)。该应用程序停留在启动屏幕上
Gunith D

1
@GunithDevasurendra,从命令行尝试以检查错误。如果您无法解决,请再写一个问题,并包含该输出。
user.dz

1
很棒的工具,我用了很多年了。不幸的是,它无法维护,并且在当前的Ubuntu版本中不起作用。希望有人可以分叉代码对其进行修复。
Diego V

在Fedora上,它与上面的不一样,并且没有这样的功能
Vlad

29

尝试这个:

sudo apt-get install gimp-plugin-registry

然后,打开Gimp并打开在中找到的Batch插件Filters > Batch > Batch Process

Input选项卡中选择图像,然后在名称意外的Resize选项卡中定义“调整大小”操作。

可以在此处找到更多信息。


21

尝试mogrify使用ImageMagick工具中的命令。

  • 给出将输出与原始文件分开的路径
  • 在宽度示例下方给出所需的缩略图宽度或高度
  • 这样,您可以保留原始文件名:-)

例:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg

1
我认为这是最好的答案!
汤姆

2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai

+1,您可以调整最长边的大小,无论是用于人像旋转还是横向旋转的图像:stackoverflow.com/a/5694903/227926
therobyouknow


8

被回答并被接受(我使用ImageMagick),但是出于完整性考虑……我有一个非技术性的老板,他想要一个带有一些基本工具的简单查看器,并且必须是GUI。我为他决定使用gThumb

在缩略图视图中,您...

  • 选择要调整大小的任何图像
  • 启动调整大小功能(单击“扳手”图标>“调整图像大小”。)
  • 根据像素或百分比放入新尺寸
  • 选择一个输出文件夹,然后离开。

对于调整大小,它是Phatch的不错选择,直到它已固定为16.04。
Hastig Zusammenstellen

3

为了调整批量图像的大小,我查看了许多软件包,最后找到了一个具有可用界面的软件包– converseen。一旦发现重要的设置在可滚动的左窗格中有些隐藏,一切就好了。
不知道这是否满足所有OP用例,但是您可能不必查看imagemagick或phatch的古怪UI。
奇怪的是,像digikam,f-spot,fotoxx或Shotwell之类的照片管理软件包似乎没有意识到在上传到Photobucket或(gag)flickr等在线服务之前,需要复制/调整图像批次的大小。这些服务只希望我们按照自己的方式做事,所以我不信任他们备份原件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.