有什么好的程序可以批量调整100,000张jpg图像的大小?


21

该程序应以批处理模式运行,以调整文件夹中所有文件的大小,然后将新文件保存到其他文件夹中。设置jpg品质的选项也很棒。


2
find和ImageMagic的组合。
mspasov

Answers:


30

令我感到惊讶的是,没有人提到最简单,最便宜,技术最少的选择:

自动化器

首先,打开“应用程序”文件夹中的Automator。

接下来,选择创建一个新的工作流程:

创建自动化器工作流程

接下来,通过拖放将以下步骤添加到工作流中:

工作流程步骤

运行此命令时,Automator将执行以下操作:

  1. 弹出一个窗口,要求您选择一些文件(尽可能多)
  2. 弹出另一个窗口,询问您要将调整大小的副本保存在何处
  3. 问您要调整尺寸的副本有多大。您将可以选择固定大小或百分比。所有图像将被调整为该大小或该百分比。

(“在工作流运行时显示此操作”复选框表示工作流将暂停,显示该选项,然后允许您对其进行更改)

完成此操作后,Automator将会搅动并燃烧,完成后它将对您发出蜂鸣声。

不幸的是,它似乎没有选择JPEG质量的选项。但是,对于价格(免费),这很方便。


对于不使用Terminal的人来说,这可能是最不熟练的技术。可能是最简单的方法,但在这里的答案中却不是最便宜的。Sips包含在Mac的Unix版本中。而且ImageMagick也是免费的。
markhunte 2012年

3
出于本讨论的目的,可以安全地假定Automator是免费的,因为可以合理地假设@mototribe正在运行OSX。我要担心的是Automator将如何处理100,000个图像,但是假设它们并不全部存在。单个文件夹,直到完成一次,我只会一次将其送入一个文件夹。我已经非常轻松地针对数百张图像运行了这个工作流程。我看不出为什么它不能与成千上万个对象一起使用,因为每个图像一次都被推送,但是我会信任但要验证模式。
jaberg 2012年

是的,Automator完美地完成了这项工作。我来到这里的时候是在想:“我找到了一个可以批量调整图像大小的命令行实用程序”。有时,最简单的解决方案也是最好的。干杯。
Silouane Gerin

19

我喜欢使用ImageMagick。sipsAutomator和Automator(使用相同的调整大小方法)使图像看起来过于模糊,而我认为没有额外的锐化。

您可以brew install imagemagick在安装Homebrew之后sudo port install imagemagick在安装MacPorts之后安装ImageMagick 。然后运行如下命令:

mogrify -filter lanczos2 -resize '500x500>' -format jpg -quality 90 -path /tmp/ *.jpg

500x500>使宽于或高于500px的图像适合500x500px。500x会始终将宽度更改为500 px,500x500^并使所有图片至少500x500px。-path /tmp/将输出文件保存到,/tmp/而不是就地修改文件。

Lanczos2或2叶LanczosCatrom。与LanczosLanczos3)相比,它们的清晰度略低,产生的振铃伪像更少,并且产生更多的莫尔纹。缩小图片的默认过滤器是Triangle,我认为这通常会使图片变得太模糊。

-quality 100创建的文件大约是两倍-quality 95-quality 88

更多信息:

http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://lri.me/shell1.txt

这是一个类似的命令,它使用sips

for f in *.jpg; do sips -Z 500 -s format jpeg -s formatOptions 80 "$f" /tmp/; done

-Z 500就像500x500>在ImageMagick中一样。

如果其他人的图像少于100,000,则您也可以使用预览:

预览曾经使用sips与Automator 相同的调整大小方法,但是自10.7起使用了不同的方法。我更喜欢ImageMagick的Lanczos2

我将不同选项的比较上传到http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html


1
我想警告您使用mogrify:这会就地转换文件,覆盖原始文件!如果有任何问题,则说明您丢失了文件!更好地使用convert(同样来自ImageMagick)。
Kurt Pfeifle,2012年

1
@KurtPfeifle如果您指定-path选项(convert当前没有),则不会。
Lri 2012年

如果您追求速度,那sips也许是更好的选择。在对1,000张JPG进行的快速测试中,将大约5 MB的大小调整为800像素宽需要大约1分钟。用sips和〜8分钟。与mogrify(清除磁盘缓冲区,在四核上使用GNU Parallel)。
Stefan Schmidt

13

ImageMagick是用于此目的的命令行界面程序。使用和安装ImageMagick可能会令人生畏,但此图像处理程序包是迄今为止我所遇到的最强大的功能。由于对于原始OS X用户而言,从源代码进行安装可能会很麻烦,因此建议您使用Homebrew

要使用Homebrew安装ImageMagick,请在终端中运行以下oneliner:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

现在已安装Homebrew,明智的做法是在安装后遵循安装程序的建议。现在,我们使用安装ImageMagick brew

brew install imagemagick

现在已安装ImageMagick,并且convert可以根据需要使用其程序。要将大jpg图像转换为较小的png图像,可以运行

convert input.jpg -geometry 800x600 output.png

要回答您的问题“如何调整文件夹中所有文件的大小并将它们保存在其他文件夹中”,您可以运行以下脚本。

# create output dir
mkdir -p "../resized"

# Convert all .jpg files in the current folder
for image in *.jpg; do
    convert $x -geometry 800x600 resized/$x
done

ImageMagick可以转换100多种不同的图像格式,几乎您可以使用Photoshop进行的所有技巧都可以与ImageMagick一起进行。


谢谢,这是我最终使用的-但是我将其安装在Drupal上,因为我将图像导入了Drupal。
uwe 2012年

@the_karel,我只是增强了您以前的帖子。我希望你不介意。
CousinCocaine

7

几个人提到了ImageMagick。这是一个诀窍:为简单起见,假设所有文件都在一个文件夹中(并且该文件夹中没有其他文件)。打开一个终端窗口,cd进入该文件夹,然后运行

mkdir ../resized
for x in *.jpg; do convert -geometry 800x600 $x ../resized/$x

您可以用任意尺寸替换800x600。

优点包括ImageMagick的大量灵活性convert,例如能够为目标图像选择不同的质量设置,或按百分比设置调整大小选项。或者,您可以使用-geometry 800x800,在这种情况下,将保留长宽比,但宽度和高度的最大值将为800像素。

缺点是显而易见的:它需要一定程度地熟悉命令行,并且愿意通过命令行选项浏览convert所需的设置。这不是一个胆小的人的任务。


4

我第二个GraphicConverter。我已经有16年的注册用户了。它的主要目的是批处理图像编辑,并且它具有用于设计自定义工作流程并保存它们的良好用户界面。

您也可以将其与Automator结合使用,但可能不需要。

这是来自GraphicConverter页面的一些信息,解释了其批处理图像编辑功能

具有附加功能的批量转换

GraphicConverter为您提供复杂的批处理,可完全自动化应用于选择图片的重复任务:

  • 轻松将所有选定的源图片轻松快速地转换为新格式-不管有5个图片文件还是5,000个图片文件;您只需定义转换类型并设置详细信息
  • 在转换过程中,您最多可以应用60个其他批处理功能,例如旋转,调整大小,更改分辨率等。
  • 如果将图片文件放在Internet上时存在兼容性问题,则在上载文档之前自动删除Mac OS Ressourcefork
  • 创建HTML格式的目录以在Internet上发布,并根据您的个人需求调整颜色,大小等(请参见示例)
  • 快速,轻松地根据特殊标准重命名所选文件
  • 将图片连接在一起(例如用于QuickTime VR)
  • 将IPTC信息插入或提取各种文档格式
  • 以及更多 ...

在此处输入图片说明


4

这是另一个简单,干净且有效的批处理图像调整大小脚本。如果您要处理大量图形和不同的分辨率,则可以使用此脚本并将其保存为不同的值,以备不时之需。

为此,可以根据需要更改此target_width 120值并保存脚本。现在将您的图像拖到保存的脚本文件中,以开始调整图像的大小。


打开脚本编辑器,然后创建以下新脚本:

-- save in Script Editor as Application
-- drag files to its icon in Finder

on open some_items
  repeat with this_item in some_items
    try
      rescale_and_save(this_item)
    end try
  end repeat
end open


to rescale_and_save(this_item)
  tell application "Image Events"
    launch
    set the target_width to 120
    -- open the image file
    set this_image to open this_item

    set typ to this_image's file type

    copy dimensions of this_image to {current_width, current_height}
    if current_width is greater than current_height then
      scale this_image to size target_width
    else
      -- figure out new height
      -- y2 = (y1 * x2) / x1
      set the new_height to (current_height * target_width) / current_width
      scale this_image to size new_height
    end if

    tell application "Finder" to set new_item to ¬
    (container of this_item as string) & "scaled." & (name of this_item)
    save this_image in new_item as typ

  end tell
end rescale_and_save

原始资料


3

对于某些偶尔的调整大小,预览无疑是一个很好的解决方案。还有其他不错的免费选项,例如ImageMagic(命令行实用程序),Preview或其他东西以及Automator等。

但是,如果这是您工作的一部分,并且您需要真正的灵活性,那么特殊用途的应用程序将为您节省大量时间,并提供更多的机会。许多用户选择了我们的批处理图像调整器Resize Sense(http://veprit.com/resizesense),以提供出色的灵活性和便利性。

免责声明:我是开发商。您最好自己判断Resize Sense。产品网站上的介绍性视频将准确告诉您Resize Sense的特别之处。有一个免费的演示版本。



1

我通常将所有图片导入iPhoto,然后将它们导出为不同的尺寸。我已经完成了300张左右的图像,但从未达到您想要的规模。不过,这可能是一个选择。


1

没有人提到苹果光圈。

虽然绝对不是最便宜的,但它附带了许多其他有用的东西。它基本上替代了iPhoto,然后替代了一些。它完成了摄影师通常使用Photoshop的95%的工作。(它不会发出火焰状的文字。:-)

但是除非您需要Aperture提供的其他功能,否则我将同时使用ImageMagick方法(如果您不因下载,安装和运行命令行程序而受到威胁)和Automator方法(尽管@markhunte声称它是免费的) 。


-1

我使用wine(和XQuartz)和IrfanView。当然,您也可以从命令行使用imagemagick。对于葡萄酒和图片魔术师,我建议使用Homebrew

OS X上的Wine中的irfanview


我在PC上使用Irfanview已有10多年了,对此非常喜欢。但是他们没有Mac版本吗?
uwe 2012年

1
我怀疑他们是说他们在酒下经营IrFranView。Wine使您可以在其他操作系统上运行Windows软件。使用Wine,您可以像在Windows中一样安装和运行这些应用程序。屏幕截图清楚地显示了带有PC Window GUI的Mac类型窗口(顶部的按钮)
markhunte 2012年

5
在Windows应用程序中使用Wine确实是您本可以做的事的一个过大杀伤力。
Matteo
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.