gif — GIF-Aufnahme#

Das Modul gif wird für die GIF-Aufnahme verwendet.

class Gif – GIF-Recorder#

Sie können das gif-Modul verwenden, um kurze Videoclips aufzunehmen. Beachten Sie, dass GIF-Dateien unkomprimierte Bilddaten speichern. Sie eignen sich daher am besten für die Aufnahme kurzer Videoclips, die Sie teilen möchten. Verwenden Sie mjpeg für lange Clips.

Anwendungsbeispiel:

import csi
import gif
import time

# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

# Create the gif object.
g = gif.Gif("example.gif")

# Record for 4 seconds.
start = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start) < 4000:
    g.add_frame(csi0.snapshot())

# Finalize.
g.close()
class gif.Gif(filename: str, width: int | None = None, height: int | None = None, color: bool | None = None, loop: bool = True)#

Erstellt ein Gif-Objekt, dem Einzelbilder hinzugefügt werden können. filename ist der Pfad, unter dem die GIF-Aufnahme gespeichert wird.

width ist standardmäßig die horizontale Auflösung des Haupt-Framebuffers.

height ist standardmäßig die vertikale Auflösung des Haupt-Framebuffers.

color ist standardmäßig der Farbmodus des Haupt-Framebuffers:

loop bewirkt bei True, dass das GIF bei der Wiedergabe automatisch in einer Schleife läuft.

width() int#

Gibt die Breite (horizontale Auflösung) des GIFs zurück.

height() int#

Gibt die Höhe (vertikale Auflösung) des GIFs zurück.

format() int#

Gibt sensor.RGB565 zurück, wenn color True ist, andernfalls sensor.GRAYSCALE.

size() int#

Gibt die bisherige Dateigröße des GIFs zurück. Dieser Wert wird nach dem Hinzufügen von Einzelbildern aktualisiert.

loop() bool#

Gibt zurück, ob das Gif-Objekt mit aktiviertem loop konstruiert wurde.

add_frame(image: image.Image, delay: int = 10) None#

Fügt der GIF-Aufnahme ein Bild hinzu. Breite, Höhe und Farbmodus des Bilds müssen mit den im Konstruktor verwendeten Werten übereinstimmen.

delay ist die Anzahl der Hundertstelsekunden, die vor der Anzeige dieses Einzelbilds nach dem vorherigen Einzelbild gewartet wird.

close() None#

Schließt die GIF-Aufnahme ab. Diese Methode muss nach Abschluss der Aufnahme einmal aufgerufen werden, damit die Datei anzeigbar wird.