在一批照片下方拼接一张照片

在一批照片下方拼接一张照片

我确信会有一个简单的命令来实现这一点,但是我一直没能找到。

基本上,我想将一张照片拼接在另一张照片下方,且不重叠。理想情况下,我希望有一个命令可以自动执行此过程,以便拼接 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运行脚本;就完成了。

相关内容