
Dieser Artikel genau, wie Sie mit Pillow in Python ein animiertes GIF erstellen.
- So erstellen Sie GIF aus Bildern mit Image.save()
- Beispielcode zum Erstellen von animiertem GIF
- Parameter von Image.save()
- append_images
- optimieren
- Schleife
- Dauer
So erstellen Sie GIF aus Bildern mit Image.save()
Sie können ein animiertes GIF aus mehreren Bildern erstellen und mit Image.save() speichern.
im.save('.gif', save_all=True, append_images=[im1, im2, ...])
Die Bildliste [im1, im2, …] WIRD zum ersten Frame, im, hinzugefügt und eine animierte GIF-Datei .gif wird generiert und gespeichert.
Nichts finden Sie im unten stehenden offiziellen Dokument.
Der Beispielcode und die Erläuterung der Parameter sind unten dargestellt.
Beispielcode zum Erstellen von animiertem GIF
Hier ist ein Beispielcode zum Zeichnen von Kreisen, sterben mit alltäglichem ImageDraw von Pillow wachsen, und zum Speichern als GIF-Datei.
from PIL import Image, ImageDraw
images = []
width = 200
center = width // 2
color_1 = (0, 0, 0)
color_2 = (255, 255, 255)
max_radius = int(center * 1.5)
step = 8
for i in range(0, max_radius, step):
im = Image.new('RGB', (width, width), color_1)
draw = ImageDraw.Draw(im)
draw.ellipse((center - i, center - i, center + i, center + i), fill=color_2)
images.append(im)
for i in range(0, max_radius, step):
im = Image.new('RGB', (width, width), color_2)
draw = ImageDraw.Draw(im)
draw.ellipse((center - i, center - i, center + i, center + i), fill=color_1)
images.append(im)
images[0].save('data/dst/pillow_imagedraw.gif',
save_all=True, append_images=images[1:], optimize=False, duration=40, loop=0)
Die folgende animierte GIF-Datei wird generiert.
Im following Artikel erfahren Sie, wie Sie mit Pillow Figuren wie Kreise zeichnen.
Parameter von Image.save()
Wenn Sie Eine Liste mit Bildern haben, können Sie grundsätzlich ein animiertes GIF mit dem following Code erstellen:
images[0].save('data/dst/pillow_imagedraw.gif',
save_all=True, append_images=images[1:], optimize=False, duration=40, loop=0)
If SIE Eine GIF-Animation aus mehreren vorhandenen Bildern erstellen möchten, anstatt wie im Beispiel Grafiken zu zeichnen und Bilder zu erstellen, can SIE tun, Indem Sie die gleichen Bilder laden und in einer Liste speichern.
append_images
Rufen Sie die save()-Methode vom ersten Frame-Bild aus auf und übergeben Sie die Liste der tiefliegenden Bilder an append_images.
Beachten Sie, dass bei Verwendung von append_images=images der erste Frame zweimal wiederholt wird. Im Beispiel Beispiel werden das zweite und alle weiteren Bilder durch Auflagen ausgewählt.
optimieren
Ich habe den Quellcode nicht richtig gelesen, daher weiß ich nicht, welche Verarbeitung durchgeführt wird, aber wenn die Standardeinstellung (optimize=True) used WIRD, können ähnliche Bilder weggelassen Werden.
Wenn die Ausgabedatei falsch ist, kann es durch den Versuch von optimize=False behoben werden.
Schleife
Stellen Sie die Anzahl der Loops auf Loop ein. Wenn Sie loop=0 setzen, wird es zu einer Endlosschleife.
Beachten Sie, dass die Animation zunächst einmal endet.
Dauer
Stellen Sie die Anzeigezeit jedes Frames auf die Dauer in Millisekunden ein. Ist der Wert zu klein, wird er ignoriert.