2012-10-06 11 views
6

Chciałbym połączyć 4 obrazy PNG do jednego pliku PNG. Wiem, kto je połączyć z metodą Image.paste, ale nie mogłem utworzyć pliku wyjściowego zapisu! Właściwie, chcę mieć n * m pusty plik PNG i używać do łączenia moich obrazów. Potrzebuję określić rozmiar pliku, jeśli nie, nie mogę użyć metody wklejania.Jak mogę utworzyć pusty plik PNG n * m w Pythonie?

+1

Którą bibliotekę? PIL? OpenCV? – Antimony

+1

@Antimony, domyślam się 'PIL' z tagów –

Odpowiedz

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

Dzięki, a następnie powinienem zapisać go za pomocą' image.save ("image.png", "PNG") ' – Amir

0

W której części jesteś zdezorientowany? Możesz tworzyć nowe obrazy, robiąc Image.new, jak pokazano w dokumentach. W każdym razie, oto kod napisany dawno temu, aby połączyć wiele obrazów w jeden w PIL. Stawia je wszystkie w jednym rzędzie, ale masz pomysł.

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

Możesz użyć metody PIL.Image.new(), aby utworzyć obraz. Domyślny kolor to czarny. Aby całkowicie biały -background pusty obraz, można zainicjować za pomocą kodu:

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

To tworzy obraz o rozmiarze 800x1280 z białym tłem.