批量将照片转换为较小的尺寸?

批量将照片转换为较小的尺寸?

我有大约 500 张照片 - 每张大约 5MB。我想批量将它们转换为较小的尺寸,以适合电子邮件和网络托管。

我可以使用的工具 -

  • Windows 7的
  • Powershell 2
  • 我尚不知道的免费工具

最好的选择是什么?

更新 - 使其成为社区维基 - 有这么多好的选择,我不确定将其中任何一个标记为答案是否有意义。

答案1

查看伊凡维尤

答案2

我也会使用图像魔术师,这是一个 PowerShell 脚本,扩展了 DaveParillo 的想法。

# Retrieves array of JPG files in current directory
PS C:\TEST\> $jpgfiles = Get-ChildItem . -filter *.jpg
PS C:\TEST\> foreach ($jpgfile in $jpgfiles) {
# Defines a new filename by stripping original filename of extension,
# then adding "-scaled.jpg" to end of original filename
>> $newjpgfileName = $jpgfile.Name.substring(0, $jpgfile.Name.length-4) + "-scaled.jpg"
>> convert $jpgfile.Name -scale 500 $newjpgfileName
>> }
>>

我选择使用 ImageMagick 的转换命令,并将图像缩放到 500 像素宽,这将大大缩小文件并保持现有的纵横比。您也可以使用 mogrify,但这样会丢失原始图像。您可以使用 ImageMagick 做各种有趣的事情,我建议您查看他们的文档。希望这个 PowerShell 脚本能帮助您实现这一目标。

http://www.imagemagick.org/script/command-line-tools.php

答案3

我选择 Imagemagick。这是我最喜欢的价格(免费)

如果您想将图像的 jpeg 质量降低至 50%:

mogrify -quality 50% *.jpg

要调整它们的大小(较小的副本),这是 shell 语法,不确定 powershell 是否等效:

for file in *.jpg; do 
    echo  -n "Making images: $file thumbs.."
    # a bare scale means Width is given, 
    # height automagically selected to preserve aspect ratio.
    convert -scale 150 "$file" "thumbnails/$file"
    echo -n " scaled.."
    convert -scale 500 "$file" "scaled/$file"
    echo .
done 

答案4

Imagemagick 例子(此处有 2 个链接)

相关内容