我需要为这样的文件夹中的所有图像生成缩略图(示例)
原始图像:
我想要的是:
我已经尝试过这个命令
mogrify *.jpg -gravity center -thumbnail 350x200 *.jpg
我使用此命令得到的结果:
平台-Windows 7。
答案1
答案2
您想要裁剪并调整图像大小:
mogrify -crop 800x520+0+300 -resize 320x200 *.jpg
是的,由于您的图片不同,因此您可能需要调整每张图片的裁剪参数。但是,使用一些脚本,您可以通过编程来调整这些参数,例如,创建cut-resize.sh
如下所示的 bash 脚本,并使用文件名参数运行它,因此cut-resize.sh testimage.jpg
:
#!/bin/bash
origX=`identify $1 | cut -d' ' -f3 | cut -dx -f1`
origY=`identify $1 | cut -d' ' -f3 | cut -dx -f2`
offset=300
eval "mogrify -crop ${origX}x$(($origY/2))+0+$offset -resize 320x200 $1"
将执行几乎相同的操作 - 剪切图像中间的 50%,然后调整大小,适用于任何大小的图像。您可以添加其他参数和变量,以便指定偏移量和要裁剪的数量,但让您的脚本负责设置 imagemagick 的几何形状。
或者在 Windows 上,以下批处理示例可能工作,我不知道,我只有一个Linux机器,但重点是你可以通过脚本调整变量:
file=%1
rem identify %file% | cut -d' ' -f3 | cut -dx -f1
for /f "tokens=3" %%G IN ('identify %file%') DO set temp=%%G
for /f "tokens=1" "delims=x" %%G IN ("%temp%") DO set oldx=%%G
for /f "tokens=2" "delims=x" %%G IN ("%temp%") DO set oldy=%%G
offset=300
newx=%oldx%
newy=%oldy%/2
mogrify -crop %newx%x%newy%+0+%offset% -resize 320x200 %file%
批处理、bash 或 powershell 脚本的一个很好的参考是http://ss64.com/。一旦您构建了工作流程和脚本,将脚本与 Imagemagick 结合起来将非常强大。