Sto cercando di combinare orizzontalmente alcune immagini JPEG in Python.
Problema
Ho 3 immagini - ciascuna è 148 x 95 - vedi allegato. Ho appena fatto 3 copie della stessa immagine, ecco perché sono uguali.
Il mio tentativo
Sto cercando di unirli orizzontalmente usando il seguente codice:
import sys
from PIL import Image
list_im = ['Test1.jpg','Test2.jpg','Test3.jpg']
new_im = Image.new('RGB', (444,95)) #creates a new empty image, RGB mode, and size 444 by 95
for elem in list_im:
for i in xrange(0,444,95):
im=Image.open(elem)
new_im.paste(im, (i,0))
new_im.save('test.jpg')
Tuttavia, questo produce l'output allegato come test.jpg
.
Domanda
C'è un modo per concatenare orizzontalmente queste immagini in modo tale che le sotto-immagini in test.jpg non abbiano un'immagine parziale extra che mostra?
Informazioni aggiuntive
Sto cercando un modo per concatenare orizzontalmente n immagini. Vorrei utilizzare questo codice in generale, quindi preferirei:
- non codificare le dimensioni dell'immagine, se possibile
- specificare le dimensioni in una riga in modo che possano essere facilmente modificate
for i in xrange(...)
nel tuo codice? Non dovrestipaste
occuparti dei tre file di immagine che specifichi?