我确信会有一个简单的命令来实现这一点,但是我一直没能找到。
基本上,我想将一张照片拼接在另一张照片下方,且不重叠。理想情况下,我希望有一个命令可以自动执行此过程,以便拼接 200 张顶部图像,其中相同的底部图像。所有图像的宽度相同,因此无需进行转换。
我正在寻找类似“stitch -below top.png bottom.png”的程序,我已经探索过 Montage 之类的选项,但似乎无法让它按要求工作。寻求建议。
答案1
首先,您需要打开一个终端,然后sudo apt-get install imagemagick
。
现在将所有图片放在同一个文件夹中,以便您可以轻松地从终端访问它们。将顶部图片全部放在各自的文件夹中,并将底部图片放在其他地方以简化操作。
键入cd DIRNAME
,您需要将 DIRNAME 替换为存储图片的文件夹的名称,例如,/home/mark/collating
我为此目的使用的名称。
现在你的 shell 位于正确的文件夹中并且已安装 imagemagick,我们使用以下命令将图像粘贴在一起:
convert -append image1.jpg image2.jpg output.jpg
这将获取名为 image1 和 image2 的两幅图像,并将 image2 粘贴在 image1 的底部,并将结果保存为名为 output.jpg 的文件。
要实现自动化,您可以使用类似这样的脚本。您需要更改变量,使其指向正确的位置。
#! /bin/bash
# Replace the values of these variables with the locations of your tops and the bottom.
# The output directory must already exist!
# "~/" is a shortcut for your home dir, FYI.
TopsDir="~/collating/tops" #Only the TOP images should be in this folder!
BottomImg="~/collating/bottom.png"
OutputDir="~/collating/complete"
[ -d "$TopsDir" -a -d "$OutputDir" ] && [ -f "$BottomImg" ] || { echo "One of the paths you supplied wasn't valid."; exit 1;}
cd "$TopsDir"
for TopImg in *; do
convert -append "$TopImg" "$BottomImg" "$OutputDir/$TopImg"
done
将其复制并粘贴到 gedit 或文本编辑器中,然后编辑变量以便它们指向正确的文件夹。(或底部图像的文件。)将其另存为collator.sh
。如果您将其保存在您的主目录中,则对后续步骤很方便。
现在打开一个终端并导航到您保存文件的位置。(如果您将其保存在主目录中,则您已经在那里,否则请键入cd /path/to/your/location
)键入chmod +x collator.sh
以授予文件执行权限。
现在我们的工作完成了:
输入./collator.sh
运行脚本;就完成了。