gif --- gif 録画

gif モジュールは gif の録画に使用されます。

class Gif -- Gif レコーダー

gif モジュールを使用して短いビデオクリップを録画できます。gif ファイルは非圧縮の画像データを保存することに注意してください。そのため、共有したい短いビデオクリップの録画に最適です。長いクリップには mjpeg を使用してください。

使用例:

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)

フレームを追加できる Gif オブジェクトを作成します。filename は gif 録画を保存するパスです。

width はデフォルトでメインフレームバッファの水平解像度になります。

height はデフォルトでメインフレームバッファの垂直解像度になります。

color はデフォルトでメインフレームバッファのカラーモードになります:

  • False の場合、sensor.GRAYSCALE のピクセルあたり 7 ビットの gif になります。

  • True の場合、sensor.RGB565 のピクセルあたり 7 ビットの gif になります。

loop が True の場合、再生時に gif が自動的にループします。

width() int

gif の幅(水平解像度)を返します。

height() int

gif の高さ(垂直解像度)を返します。

format() int

color が True の場合は sensor.RGB565 を、そうでない場合は sensor.GRAYSCALE を返します。

size() int

現在までの gif のファイルサイズを返します。この値はフレームを追加した後に更新されます。

loop() bool

gif オブジェクトが loop を有効にして作成されたかどうかを返します。

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

gif 録画に画像を追加します。画像の幅、高さ、カラーモードはコンストラクターで使用した値と一致している必要があります。

delay は、前のフレームの後にこのフレームを表示するまで待機するセンチ秒数です。

close() None

gif 録画を確定します。録画完了後にファイルを表示可能にするには、このメソッドを一度呼び出す必要があります。