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

Sco*_*ein 15 windows-7 powershell photos

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

我可以使用的工具 -

  • Windows 7的
  • 电源外壳 2
  • 我还不知道的免费工具

最好的选择是什么?

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

小智 15

查看Irfanview


小智 8

我也会使用ImageMagick,这是一个 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
>> }
>>
Run Code Online (Sandbox Code Playgroud)

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

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


Dav*_*llo 7

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

如果要将“就地”图像的 jpeg 质量降低到 50%:

mogrify -quality 50% *.jpg
Run Code Online (Sandbox Code Playgroud)

要调整它们的大小(较小的副本),这是 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 
Run Code Online (Sandbox Code Playgroud)


har*_*ymc 5

适用于 Windows 的 Image Resizer Powertoy Clone - 为一张或多张图像调整图像大小的最简单方法:

到目前为止,定期调整图像大小一直有些乏味。
当我正在寻找一个可以按分辨率对图像进行排序的程序时,我发现了一个程序的小宝石,该程序只需单击鼠标右键即可在 Windows 资源管理器(而不是 Internet Explorer)中调整图像大小。Image Resizer Powertoy Clone 超级好用;打开Windows资源管理器,找到要调整大小的图像,右键单击该图像,选择“调整图片大小”,选择一个大小,单击“确定”即可完成。

图片1