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-Aufzeichnung ein Bild hinzu. Breite, Höhe und Farbmodus des Bildes müssen mit den im Konstruktor verwendeten Werten übereinstimmen. Es werden nur image.GRAYSCALE- und image.RGB565-Bilder akzeptiert; konvertieren Sie Bayer- oder YUV-Einzelbilder zuerst (oder setzen Sie das Pixelformat der Kamera auf RGB565).

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.