假设您有一个包含大量图片的文件夹。文件大小和扩展名因图像而异,您希望以相同的格式保持一致。有办法:
如何做到这一点?
对不起,如果这是一个太广泛的问题,但我已经找了各种工具,如BulkRenameUtility,Flash Renamer,JPEG resizer,ReaConverter。所有优秀的工具,但它们都使用GUI,我想创建一个在Windows服务器上每晚自动运行的解决方案。重命名部分可以使用BRU或flashrenamer的命令行来完成,但是如何使用max filesize转换为JPEG ...
答案 0 :(得分:2)
您可以使用ImageMagick,Bash和tr
命令行工具执行此操作。使用以下元素编写shell脚本。
首先,重命名文件:
file_orig=${input} # ex.: "aBcD.png"
file_upper=$(echo $(basename ${input}) | tr "[a-z]" "[A-Z]") # ex.: "ABCD"
然后,使用ImageMagick的convert
命令转换为JPEG:
convert ${input} ${file_upper}.jpg # ex.: "ABCD.jpg"
这是最基本的用法。它还没有适用于您的文件大小条件。您可以使用基本shell命令检查文件大小,并以检查结果为条件运行命令。
但这是一个更优雅的方法:ImageMagick(如果它的版本是IM v6.5.8-2或更新版本)可以使用-define jpeg:extent={size}
进行JPEG输出,其中{size}
指定文件大小后缀(例如:5000kb
或5mb
为5 MByte)。
它的工作方式如下:convert
创建JPEG输出的多个版本。它尝试使用不同的质量设置,直到它尽可能接近给定的文件大小而不超过它。它将结果可重复写入临时文件。找到合适的质量+大小后,它会将最终图像输出到给定的输出文件名并删除临时文件:
convert \
-define jpeg:extent=5mb \
${input} \
${file_upper}.jpg
ImageMagick也适用于Windows。 (我在Linux和Mac OSX上测试过。)