我想制作3 x 3张照片的拼贴画。我想重复使用我做2 x 2拼贴的代码,但它没有用。主要我想了解我的错误,而不是运行代码(我知道这里有一个解决方案,但采用不同的方法)。
非常感谢帮助,因为我对编码完全不熟悉。
from PIL import Image
new_im = Image.new('RGB', (640,480))
width = 213
height = 160
x = 0
y = 0
for im in image_list:
if (x == 640):
y = y + height
x = 0
im.thumbnail((width, height))
new_im.paste(im, (x,y))
x = x + width
new_im.save('collage.png')
答案 0 :(得分:0)
始终确保打印您的值作为调试的第一步。一个简单的
print(x, y)
循环底部的可以为您省去麻烦。在这种情况下,变量x
每次只更新213次,这不是640的倍数。
如果您希望拼贴一般为NxM
,则只需将宽度和高度设为width/N
和height/M
,然后舍入为整数。然后,只要x >= width*N
提前y
,就会检查。