2012-10-06 11 views
6

Vorrei combinare 4 immagini PNG in un file PNG. So chi combinarli con il metodo Image.paste, ma non riesco a creare un file di output di salvataggio! In realtà, voglio avere un file PNG vuoto n * m, e usare per combinare le mie immagini. Devo specificare la dimensione del file, altrimenti non potrei usare il metodo paste.Come posso creare un file PNG n * m vuoto in Python?

+1

Quale libreria? PIL? OpenCV? – Antimony

+1

@Antimony, immagino 'PIL' dai tag –

risposta

10
from PIL import Image 
image = Image.new('RGB', (n, m)) 
+1

Grazie, e quindi dovrei salvarlo con' image.save ("image.png", "PNG") ' – Amir

0

Da quale parte sei confuso? Puoi creare nuove immagini semplicemente facendo Image.new, come mostrato nei documenti. Ad ogni modo, ecco un codice che ho scritto molto tempo fa per combinare più immagini in una in PIL. Li mette tutti in un'unica fila ma tu hai l'idea.

max_width = max(image.size[0] for image in images) 
max_height = max(image.size[1] for image in images) 

image_sheet = Image.new("RGBA", (max_width * len(images), max_height)) 

for (i, image) in enumerate(images): 
    image_sheet.paste(image, (
     max_width * i + (max_width - image.size[0])/2, 
     max_height * 0 + (max_height - image.size[1])/2 
    )) 

image_sheet.save("whatever.png") 
4

È possibile utilizzare il metodo PIL.Image.new() per creare l'immagine. Ma il colore predefinito è nero. Per creare un'immagine vuota totalmente bianco -background, è possibile inizializzare con il codice:

from PIL import Image 
img = Image.new('RGB', (800,1280), (255, 255, 255)) 
img.save("image.png", "PNG") 

si crea un'immagine con la dimensione 800x1280 con sfondo bianco.

Problemi correlati