imagemagick:居中并调整多个图像的大小以保持原始文件名

imagemagick:居中并调整多个图像的大小以保持原始文件名,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,早上好 我想以不同的纵横比居中调整文件夹中多个图像的大小,并保留文件名。下面是我想要的(它非常适合特定的图片),但是我必须给每个特定的图片命名 convert -size 100x100 xc:black -gravity center originalpic.jpg -thumbnail 300x300 -composite newpic.jpg 我尝试使用*来保留原始文件名并处理文件夹中的每个文件,但没有成功。有人知道怎么做吗 谢谢大家! 使用命令处理多个文件 mogrify -size

早上好

我想以不同的纵横比居中调整文件夹中多个图像的大小,并保留文件名。下面是我想要的(它非常适合特定的图片),但是我必须给每个特定的图片命名

convert -size 100x100 xc:black -gravity center originalpic.jpg -thumbnail 300x300 -composite newpic.jpg
我尝试使用*来保留原始文件名并处理文件夹中的每个文件,但没有成功。有人知道怎么做吗

谢谢大家!

使用命令处理多个文件

mogrify -size 100x100 xc:black -gravity center -thumbnail 300x300 -composite *.jpg
另一种方法是在bash中迭代图像,并使用与输出相同的名称覆盖:

for f in *.jpg
do convert -size 100x100 xc:black -gravity center $f -thumbnail 300x300 -composite $f
done

总的来说,我想我得到了:

第一个尺寸可降低到您想要的高度,例如364px:

mogrify -resize x364 *.jpg
然后,例如,你想得到一个546x364px的尺寸,这个:

mogrify -extent 546x364 -gravity center *.jpg
但在原始尺寸为512x768的图像中,背景被白色填充,所以我尝试了

mogrify -extent 546x364 -gravity center -background black *.jpg


但背景仍然是白色的:-(

这对我不起作用-图像上似乎没有任何变化。奇怪的是,
mogrify
应该这么做。如果你在linux上,你可以在bash中迭代文件并在其上使用
convert
。检查答案。bash的第二个建议对我也不起作用-我想是因为“originalpic.jpg”(当然,我用原始文件名替换了它)。我也尝试了*.jpg和$f,但没有成功…bash工作的第二个文件现在适合我了。非常感谢enrico.bacis!“mogrify”通常不需要“sudo”。我猜您的*.jpg所在的目录没有写入文件的权限,或者您对*.jpg文件本身没有写入权限。
mogrify -extent 546x364 -gravity center -fill black *.jpg