Linux:如何用Python在Gimp中合并两幅图片

Linux:如何用Python在Gimp中合并两幅图片,python,linux,gimp,Python,Linux,Gimp,我必须完成以下任务:两个大小相等的正方形png图像必须并排放在一起,并作为组合图像导出。必须对文件夹中的数百对进行此操作,文件夹的结尾为_1和_2 我认为这可以通过Pytho-Fu在Gimp中完成,但是在紧迫的日程安排下,试图理解Gimp脚本的基本原理有点困难,我真的需要一个解决方案来完成这项任务。我真的很感激你能给我指出正确的方向 如果有比使用Gimp更简单的解决方案,请让我知道。它应该在Linux上运行,理想情况下可以从bash执行 根据xenoid的建议: 我发现ImageMagick的语

我必须完成以下任务:两个大小相等的正方形png图像必须并排放在一起,并作为组合图像导出。必须对文件夹中的数百对进行此操作,文件夹的结尾为_1和_2

我认为这可以通过Pytho-Fu在Gimp中完成,但是在紧迫的日程安排下,试图理解Gimp脚本的基本原理有点困难,我真的需要一个解决方案来完成这项任务。我真的很感激你能给我指出正确的方向

如果有比使用Gimp更简单的解决方案,请让我知道。它应该在Linux上运行,理想情况下可以从bash执行


根据xenoid的建议: 我发现ImageMagick的语法和文档非常混乱,没有达到最佳状态,因此我将与大家分享我是如何做到这一点的:

对于Ubuntu 18.04.04:

montage -tile x1 -geometry +0+0  input1.png input2.png output.png
整个事情可能对其他人来说都不有趣

#! /bin/bash

input="./Input/"
output="./Output/"

# add to output filename
prefix="CIF_"
postfix="_2"

# get file list
readarray -d '' RRA < <(find $input -regextype posix-egrep -regex '(.*)?_1_cr\.png$' -print0)
echo "Merging ${#RRA[@]} images.."

# remove directory from filename
RRA=( "${RRA[@]##*/}" )

# strip last part of filename: "_1_cr.png"
RRA=( "${RRA[@]/%_1_cr\.png/}" )

# merge images
for fall in "${RRA[@]}";do

    # check if there are two images to merge for current case
    if test -f "$input${fall}_2_cr.png"; then
        echo "${fall}"
        montage -tile x1  -tile-offset +10 -geometry +0+0  -border +20+20 -bordercolor white $input${fall}_1_cr.png $input${fall}_2_cr.png $output$prefix${fall}$postfix.png
    else
        echo "${fall} - no second image found"
    fi
    
done 

使用ImageMagick,您可以在每一对上循环,只需执行以下操作:

convert image_1.png image_2.png +append image_1_2.png
看见 如果需要它们之间的空间,请使用+smush X,其中X是所需的空间量。如果希望它们重叠,则使用负值表示X。可以使用-background color设置空间的颜色


更好地使用。谢谢,看起来很有希望!