2016-12-11 3 views
1
  • Ich habe eine Liste von .png (PIL) Bildern I
  • Um dies zu tun zusammen in eine animierte gif bespannen will, ich bin derzeit mit der imageio Bibliothek
  • Aber ich kann nicht einen Weg finden, zu tun dieser gute Qualität Gifs

Was zu produzieren, wie ich weiß, gibt es zwei Arten von Einstellungen, die ich ändern kann. Die imageio.imread() Einstellungen zum Lesen von PNGs und die imageio.mimwrite() Einstellungen zum Schreiben von Gifs. Nach imageio.help(),imageio: Wie kann man die Qualität der ausgegebenen Gifs erhöhen?

  1. imageio.imread() hat ein Lese Paramter nur für PNG-PIL, ignoregamma die einen boolean nimmt. Das ändert nichts an meinen Ausgabe-Gifs.
  2. imageio.mimwrite() kann auf zwei Formate verweisen. Die erste ist GIF-PIL. Die Ausgabe von diesem Format zeigt nur einen Rahmen und ist daher unerwünscht. Output here.
  3. imageio.mimwrite() hat das zweite Format GIF-FI. Dies erzeugt vielversprechende Ausgänge mit den folgenden Optionen:
    • 'quantizer':'wu' mit bestimmten Frames und Frameraten eine vollständige gif erzeugt, aber erzeugt eine ‚korrumpiert‘ Art-Qualitäts. Output here.
    • 'quantizer':'nq' erzeugt ein volles gif mit besserer "weniger korrodierter" Qualität als "wu", aber behandelt nicht gut Farbe. Beachten Sie, dass die Legende unten rechts dazu neigt, ihre Farbe zu ändern. Output here.

Hier ist der entsprechende Code für die beste Qualität, die ich bisher bekommen kann (GIF-FI mit nq)

def gen_gif(self, datetime_list): 
    kwargs_write = {'fps':5.0, 'quantizer':'nq'} 
    frames = [] 
    for datetime in datetime_list: 
     frames.append(imageio.imread(datetime+'.png')) 
    exportname = '{} to {}.gif'.format(datetime_list[0], datetime_list[-1]) 
    imageio.mimsave(exportname, frames, 'GIF-FI', **kwargs_write) 

Die Funktion mit einer Liste Parametern von Strings aufgerufen wird mit dem vollständigen Pfad zu den .png Bildern, die zum gif kompiliert werden sollen.

Antwort

0

Das GIF-Format kann nur 256 Farben pro Bild verarbeiten. Der Parameter quantizer legt die Methode fest, nach der diese Farben gesucht werden.

Der beste Weg, um zu steuern, welche Farben verwendet werden, ist wahrscheinlich, die Anzahl der Farben (auf 256) auf eigene Faust zu reduzieren.

Verwandte Themen