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의 기본값은 메인 프레임버퍼의 색상 모드입니다:

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 녹화를 마무리합니다. 파일을 볼 수 있게 하려면 녹화가 완료된 후 이 메서드를 한 번 호출해야 합니다.