Combine varias imágenes diferentes de un directorio en un lienzo de tamaño 3x6

Itirate a imágenes de un directorio. Quiero de esas imágenes crear un lienzo de 3x6, una nueva imagen que muestre las imágenes de ese directorio una al lado de la otra en una sola imagen / lienzo. Cada imagen debe ser una imagen diferente. Lado a lado. -

tengo el siguiente código. Intenta leer los nombres de los archivos de imagen de un directorio que están almacenados en una lista. Luego intenta copiar / combinar cada imagen en un lienzo de 3x6. Sin embargo, el resultado que quiero no sucede. que estoy haciendo mal?

import Image
import os
import PIL
import glob
import matplotlib.pyplot as plt

# path
path = "/media/"
listing = os.listdir(path)

# getting all path+filename in a list
npath=[]
im=[]
for infile in listing:
  im.append(infile)
  npath.append(os.path.join(path, infile))

#creates a new empty image, RGB mode, and size 400 by 400.
new_im = Image.new('RGB', (2100,2400))


#Here I resize my opened image, so it is no bigger than ****
#Iterate through a grid with some spacing, to place my image
for i in xrange(0,2100,700):
    for j in xrange(0,2400, 400):
        for imagefile in npath:
            im=Image.open(imagefile)
            im.thumbnail((1000,1000))
            #paste the image at location i,j:
            new_im.paste(im, (i,j))
            new_im.show()
#saving
new_im.save('/media/test.png')

La solución

import Image
import os
import PIL
import glob
import matplotlib.pyplot as plt

# path
path = "/media/"
listing = os.listdir(path)


# getting all path+filename in a list
npath=[]
im=[]

for infile in listing:
  im.append(infile)
  npath.append(os.path.join(path, infile))

#creates a new empty image, RGB mode, and size 400 by 400.
new_im = Image.new('RGB', (2500,3000))

for i in xrange(0,2500,800):
    for j in xrange(0,3000, 500):
        im=Image.open(npath.pop(0))
        im.thumbnail((1000,1000))
        #paste the image at location i,j:
        new_im.paste(im, (i,j))
    new_im.save('/media/test.png')

Respuestas a la pregunta(2)

Su respuesta a la pregunta