使用ImageMagick从不同文件夹追加和批处理图像

时间:2015-07-14 19:57:35

标签: automation imagemagick batch-processing

我在一个文件夹(文件夹A )中有数百张图片需要与另一个文件夹中的2个文件合并(文件夹B )。

文件夹A 包含方形100x100图像。我创建了一个100px宽的页眉和页脚,位于文件夹B 中。

我需要将文件夹B 中的页眉和页脚与文件夹A 中的方形图像合并。

所以最终结果应该是:

-- HEADER --
  -IMAGE-
-- FOOTER --

我对一个图像(参见下面的命令)进行了测试,其中标题,图像和页脚存在于相同的文件夹中,但是如何根据上述情况批量处理它?<​​/ p>

convert -append -quality 100 -gravity Center "C:\test\*.jpg" "C:\test\output\img.jpg"

另一个选项可能是让一个文件带有图像掩码,以便插入页眉和页脚之间?

2 个答案:

答案 0 :(得分:2)

对于Windows,是一个很好的起点。

Get-ChildItem C:\FolderA -Filter *.jpg | Foreach-Object {
    $img = $_.FullName
    $out = Join-Path C:\test $_.Name
    convert.exe C:\FolderB\header.jpg $img C:\FolderB\footer.jpg -append $out
}

对于Unix / OSX / Linux,请使用

for img in `ls ./FolderA/*.jpg`; do
    convert ./FolderB/header.jpg $img ./FolderB/footer.jpg -append ./test/$out
done

答案 1 :(得分:2)

你的问题很不清楚 - 每个图像的上方和下方是否有一个标题和一个单页脚,或者每个图像都有自己的页眉和页脚 - 如果是这样,你怎么知道哪个页眉/页脚属于哪个图片?什么是应该调用的输出图像?等等...

无论如何,你的解决方案可能看起来像这样,虽然我从不在Windows工作,所以先备份!

CD "Folder A"
FOR %%G in (*.JPG) DO convert "FolderB\header.jpg" "%%G" "FolderB\footer.jpg" -append "%%G"