我正在尝试编写一个代码将两张照片并排合并到一个新图像上,我发现这个脚本在线 - 但是,我不知道它是如何工作的。我在哪里输入要合并的图像文件?有人可以向我解释一下这段代码吗?谢谢!
from PIL import Image
import sys
if not len(sys.argv) > 3:
raise SystemExit("Usage: %s src1 [src2] .. dest" % sys.argv[0])
images = map(Image.open, sys.argv[1:-1])
w = sum(i.size[0] for i in images)
mh = max(i.size[1] for i in images)
result = Image.new("RGBA", (w, mh))
x = 0
for i in images:
result.paste(i, (x, 0))
x += i.size[0]
result.save(sys.argv[-1])
答案 0 :(得分:-1)
这很容易。使用sys.argv中提供的名称打开图像(程序的参数):
images = map(Image.open, sys.argv[1:-1])
您计算新宽度(打开图像的所有宽度的总和,即i.size [0])
w = sum(i.size[0] for i in images)
高度,应该等于最高图像的高度(这样它可以适合每个)
mh = max(i.size[1] for i in images)
使用计算的dumentions创建图像
result = Image.new("RGBA", (w, mh))
对于打开的每个图像,将其(带有paste
函数)插入到左边x像素点和顶部0点,并将插入图像的宽度添加到x,使下一个图像相邻,
x = 0
for i in images:
result.paste(i, (x, 0))
x += i.size[0]
保存图片
result.save(sys.argv[-1])
您在顶部看到的错误处理与合并图像的过程无关,而是断言程序有正确数量的参数