Ich möchte 4 PNG-Bilder zu einer PNG-Datei kombinieren. Ich weiß, wen ich mit der Image.paste-Methode kombinieren soll, aber ich konnte keine Speicherausgabedatei erstellen! Eigentlich möchte ich eine n * m leere PNG-Datei haben und meine Bilder kombinieren. Ich muss die Dateigröße angeben. Andernfalls kann ich die Methode Einfügen nicht verwenden.

30
Amir 6 Okt. 2012 im 17:54

3 Antworten

Beste Antwort
from PIL import Image
image = Image.new('RGB', (n, m))
27
John La Rooy 6 Okt. 2012 im 13:57

Welcher Teil verwirrt Sie? Sie können neue Bilder erstellen, indem Sie Image.new ausführen, wie in den Dokumenten gezeigt. Wie auch immer, hier ist ein Code, den ich vor langer Zeit geschrieben habe, um mehrere Bilder in PIL zu einem zu kombinieren. Es bringt sie alle in eine einzige Reihe, aber Sie bekommen die Idee.

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")
1
Antimony 6 Okt. 2012 im 14:02

Sie können die Methode PIL.Image.new() verwenden, um das Bild zu erstellen. Die Standardfarbe ist jedoch Schwarz . Um ein vollständig weißes Hintergrundbild zu erstellen, können Sie es mit dem folgenden Code initialisieren:

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

Es wird ein Bild mit der Größe 800x1280 mit weißem Hintergrund erstellt.

21
ccy 4 Juni 2017 im 02:30