Hoy*_*oyo 2 python image python-imaging-library pillow
我正在尝试通过序列图像制作一个3x3网格,但似乎无法做到正确.图像在文件夹中,命名为0 - 8(共9个图像),最终一个图像网格3x3的输出应如下
image0 image1 image2
image3 image4 image5
image6 image7 image8
Run Code Online (Sandbox Code Playgroud)
我试图关注如何使用PIL/Pillow将图像合并到画布中?但无法使其正常工作.
无需更改图像中的任何内容,只需将它们合并并制作3x3网格即可
(cols*img_height, rows*img_width)用rows*cols图像制作任意形状的网格:
def image_grid(imgs, rows, cols):
assert len(imgs) == rows*cols
w, h = imgs[0].size
grid = Image.new('RGB', size=(cols*w, rows*h))
grid_w, grid_h = grid.size
for i, img in enumerate(imgs):
grid.paste(img, box=(i%cols*w, i//cols*h))
return grid
Run Code Online (Sandbox Code Playgroud)
在你的情况下,假设imgs是一个列表的PIL图片:
grid = image_grid(imgs, rows=3, cols=3)
Run Code Online (Sandbox Code Playgroud)
这是一个如何做到这一点的例子(考虑图像是你的一个图像):
img_w, img_h = image.size
background = Image.new('RGBA',(1300, 1300), (255, 255, 255, 255))
bg_w, bg_h = background.size
offset = (10,(((bg_h - img_h)) / 2)-370)
background.paste(image1,offset)
Run Code Online (Sandbox Code Playgroud)
调整偏移,宽度和高度以满足您的要求.