ich habe mal eine Verständnisfrage.
Auf der Suche nach der Möglichkeit aus jpgs eine animierte gif zu erstellen, bin ich auf folgendes Script gestoßen.
Code: Alles auswählen
from pathlib import Path
from PIL import Image
p = Path('.')
img,*imgs = [Image.open(f) for f in sorted(p.glob("*.jpg"))]
img.save(fp = "image.gif",
format = "GIF",
append_images = imgs,
save_all = True,
duration = 1000,
loop=0)
Es wird eine Liste mit Image-Objete erzeugt, die dann an als gif gespeichert werden. Was mir nicht klar ist:
Wie funktioniert/ welche Bedeutung hat der Abschnitt
img,*imgs = …
img ist ein Image-Objekt und imgs die Liste (tye(…)). Was mach das „*“ in diesem Zusammenhang? Auf der einen Seite habe ich die Variable img und imgs aber auf der andren Seite der Zuweisung nur eine „Operation“, oder? In Worte gefasst steht doch dort "Öffene, in sortierter Reigenfolge, alle jpgs und erzeuge ein Image-Objekt. Das Ergebnis lege in einer Liste (imgs) ab.
Als Anfänger hätte ich versucht mit einer Schleife die einzelnen Bilder zu öffnen und an die Liste anzufügen. Das oben angeführte Skript ist kürzer, aber für mich nicht durchschaubar.
Wer kann mir mal auf die Sprünge helfen?