哪种程序可以自动将图像文件夹调整大小并裁剪为特定分辨率?


11

我想取一个各种尺寸的图像文件夹,并将它们裁剪成一个600x600的网格正方形,从图像的中间切出。是否有一个程序可以自动调整大小和裁剪到这些尺寸,然后输出为压缩的.png文件?对于小于600x600的图像,我希望程序将图像的尺寸增加到该尺寸。


1
我检查了Irfanview,它的批处理作物是静态的,只有从角点开始和固定偏移量的选项。它无法执行OP要求的居中和条件调整大小。它不适用于可变图像尺寸。
Michael Nielsen 2012年

1
我非常希望XnConvert可以做您想要做的事情,但是像IrfanView一样,它不会对任意图像大小进行集中裁剪。
马克·惠特克

Answers:


12

Photoshop的Batch命令可以做到这一点。本质上,您将“录制”自己执行一次裁剪等操作,然后在所需的所有文件上运行录制。如果要自动调整较小图像的大小,则必须进行一些脚本编写。

Irfanview还具有全面的图像批处理处理器,但可能需要进行一些实验才能获得所需的结果。


10

ImageMagick让您在Windows命令窗口中运行命令。您需要熟悉创建Dos批处理文件。

有关示例,请参见本讨论中的最后一篇文章:http : //www.imagemagick.org/discourse-server/viewtopic.php?f=1& t= 21112

此论坛帖子中的相关示例:

@echo off

cd C:\Users\user\Desktop\New\New folder

convert *.jpg -fuzz 10%% -trim -write %%02d_trim.png -scale "x1!" txt:

convert *_trim.png -crop 209x329+0+0 -fuzz 10%% -trim +repage %%02d_left.png

convert *_trim.png -crop 173x336+227+0 -fuzz 10%% -trim +repage %%02d_right.png

@pause

如果在此处引用或总结了外部资源的相关部分,那将是最好的选择。外部链接可能随时会离线,从而使仅包含链接的答案无效。您提供的链接有一个答案,但是我想请您在答案中引用相关命令以使其更可行。
jrista

7

首先,我认为您想要批量调整大小,许多程序都可以做到这一点。但是后来我意识到,您想将调整大小和裁剪结合在一起,并且希望计算机计算如何从图像中动态地最佳切出600x600像素。

这是因为这不是“一个真正的解决方案”类型的任务,因为通常是人为判断调用,即如何裁剪图像,因此只能通过引导某些条件来完成。例如,查看长宽比,并始终将最短尺寸调整为X和裁剪Y(居中/向右/向左)像素。如果我正确阅读了您的声明,则如果两个尺寸均为600或更大,则希望从两个尺寸的X和Y中心裁剪600个像素。如果尺寸小于600,仅将尺寸调整为600?

我一直很想在我的程序“ Image View Plus More”中添加一个这样的功能,我想功能设置应该是这样的:-裁剪尺寸:wxh-对齐宽度:中心/左/右-对齐高度:中心/左/右-调整大小:否/如果小于/如果大于/都

您还需要其他设置吗?

更新:现在,我已经将该功能编程到Image View Plus More 2.4中:

http://www.sequoiagrove.dk/tools.php

操作方法:安装,将要裁剪的图像拖放到其中,“全部保存到新文件夹”,并为其指定基本名称或%以使用原始文件名,然后在下一个对话框中选择“自动裁剪” ”,然后填写宽度和高度框,然后选择对齐方式“中心”作为高度和宽度,然后选中“如果较小则调整大小”。

我做了一个教程如何做到这一点:

解决OP问题的方法:http : //www.youtube.com/watch?v=wBc1s6zuDJM

另一个示例:http : //www.youtube.com/watch?v=3nFrnaefsqA


看到我的答案,我用python编写了代码。
Onlyjus 2012年

1
是的,现在它不是那么静态,但是您确定OP对对其图像编辑进行编程感兴趣吗?
Michael Nielsen 2012年

我不知道。OP只是要求一个程序,所以我写了一个。
Onlyjus 2012年

如您所见,我现在添加了该功能,并且有一些改进的想法,例如“以示例显示”(在当前查看的照片上),因此您不必将自己限制在居中或与边缘对齐的位置。Ofc我必须弄清楚如何将该示例概括为不同的宽高比和大小。
Michael Nielsen 2012年

真好!您的程序是用什么编写的,并且源可用?
Onlyjus 2012年

5

如果您喜欢编程,则可以使用Python(计算机语言),并且精通一个库,它知道PIL可以在编程级别进行裁剪,调整大小,绘制直方图,获取单个像素值等。因此,您可以轻松编写一个简单的脚本来查找文件夹中的所有图像并执行操作。

这段代码可以完全满足您的要求,并根据图像大小每秒处理几张图片:

#Python 2.7, PIL 1.1.7

import Image
import glob
import os

#Function to resize image, preserving aspect ratio
def resizeAspect(im, size):
    w,h = im.size
    aspect=min(size[0]/float(w), size[1]/float(h))
    return im.resize((int(w*aspect),int(h*aspect)),Image.ANTIALIAS)

imgList=glob.glob('C:/icons/*.png')         #Find all png images in a directory

for img in imgList:                              #Loop through all found images
    im = Image.open(img)                         #open the image
    print "resizing:",os.path.basename(img)
    w,h = im.size                                #Get image width and height
    if min(w,h)<600:                             #Check if either dimension is smaller then 600
        im=resizeAspect(im,(600,600))            #Re-size Image
        w,h = im.size                            #update image size
    center = [int(w/2.0),int(h/2.0)]             #Calculate Center
    box = (center[0]-300, center[1]-300, center[0]+300, center[1]+300) #Defines a box where you want it to be cropped
    croppedIm = im.crop(box)                     #Crop the image
    #croppedIm.show()                            #Show the cropped image
    fileName, fileExtension=os.path.splitext(img)
    croppedIm.save(fileName+'_crop.png', "PNG")  #Save the cropped image

当您开始在程序设计层面上工作时,天空就是极限!甚至可以检测到面部并在面部周围裁剪,从而使您可以智能裁剪数千张照片...

[2012年9月12日更新]


4

ThumbsPlus可以满足您的要求。在图像菜单上,选择批处理或按F12键并回答交互式提示。您可以将多个操作添加到集合中并保存以供立即使用和将来使用。将来,只需访问先前配置的设置名称,即可在目录或选择的照片甚至整个目录树上自动运行它。

构建集时,将为您提供示例图片,以说明您已添加到操作中的选项。

由于操作顺序很重要,因此在构建集合时要小心。


4

Sizzlepig.com是一个在线工具,可以很容易地做到这一点,您可以将“蓝图”的大小设置为600x600,然后将其裁剪为所有图像的中心。

对于“对于小于600x600的图像,我希望程序将图像的尺寸增加到该尺寸。” 我强烈建议您不要尝试放大图像,而是尝试寻找更高质量的信号源。我知道这并不总是可能的,但是与尝试升级相比,它将产生更高的质量输出。

(我为sizzlepig工作,但它仍然是一个很好的工具)


请参阅常见问题。可以在这里提及您自己的事情,但是您需要这样说。
请阅读我的个人资料

1
凉。欢迎来到该网站,并在附近回答并提出其他问题。:)
请阅读“我的资料”


2

Irfanview可以执行此操作,但需要进行一些设置。

使用批量转换选项。选择“ PNG”作为输出格式。单击输出格式旁边的“选项”按钮,然后选择所需的压缩,然后单击“确定”。

勾选“使用高级选项”复选框,然后单击“高级”按钮

您会看到此窗口

Irfanview高级设置

设置最短边600的调整大小。确保选中“保留长宽比”和“使用重采样功能”。取消勾选“不要放大较小的图像”

如果您要大幅减少原始图像的大小,则可能需要在“ sharpen”框上打钩并添加一个值。我的要求是150x150尺寸的图像,我发现它们需要大约20的锐化值,以匹配我从photoshop获得的图像质量。对于600x600的图像,您可能不需要锐化值-因此您可以取消选中该选项。

而不是使用“裁剪”,而是使用“画布大小”设置-确保选中该选项

单击画布大小选项旁边的“设置”按钮。您会看到此窗口

Irfanview画布尺寸选项

选择方法2,宽度和高度为600。选择锚点的“中心”选项

画布颜色无关紧要,因为它实际上不会添加图像边框

现在,在高级屏幕上,再次选中“自定义处理顺序”旁边的框,并确保“调整大小”位于列表的第一位-即,使调整大小在裁剪之前完成。

点击确定

确保已选择要转换的文件,设置输出目录,然后单击“开始批处理”



0

http://pixresizer.software.informer.com/上有一个具有多个选项的实用程序。

这是很好的软件。好的手段,易于使用并且工作更快。摄影时,我使用它来批量处理图像。很多时候,我需要减少图片的大小,以便通过互联网共享它们。我也尝试过其他软件,但发现它很好。(我与这家公司没有关系。)


该软件好吗?为什么?您与公司有联系吗?
保罗·塞尚

嗨,保罗,是的,这是很好的软件。好的手段,易于使用并且工作更快。摄影时,我使用它来批量处理图像。我也尝试了其他软件,但发现它很好。不!我与这家公司无关。
Mahesh Mankar

Mahesh,您可以发表评论并编辑答案吗?并非所有人都阅读评论。并告诉我们越来越多的信息,我们很想知道!
保罗·塞尚

0

我不知道为什么没人提它,但是我最喜欢的是multipleimageresizer.net。它可以让您做很多事情,例如裁剪,更改格式,大小,添加文本,水印...等。同时显示在多个图像上。

这是一个实时保护程序。我建议!

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.