mjpeg — mjpeg felvétel#

Az mjpeg modul mjpeg felvételhez használatos. Használja hosszú videoklipek tömörített képadatként való rögzítéséhez. Rövid klipekhez használja a gif modult.

Példa használat:

import csi
import mjpeg
import time

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

# Create the mjpeg object.
m = mjpeg.Mjpeg("example.mjpeg")

# Record for 20 seconds.
start = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start) < 20000:
    m.add_frame(csi0.snapshot())

# Finalize.
m.close()

class Mjpeg – Mjpeg felvevő#

class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)#

Létrehoz egy Mjpeg objektumot, amelyhez képkockákat adhat hozzá.

A path a fájlrendszerbeli elérési út, ahová az mjpeg felvételt menti.

A width az mjpeg fájl vízszintes felbontása. Ha nincs megadva, a fő képkocka-puffer szélességére áll be alapértelmezésként.

A height az mjpeg fájl függőleges felbontása. Ha nincs megadva, a fő képkocka-puffer magasságára áll be alapértelmezésként.

is_closed() bool#

True-t ad vissza, ha a fájl be lett zárva. Bezárt fájlba nem írható több adat.

width() int#

Visszaadja az mjpeg fájl vízszintes felbontását.

height() int#

Visszaadja az mjpeg fájl függőleges felbontását.

count() int#

Visszaadja az mjpeg fájlba írt képkockák számát.

size() int#

Visszaadja az mjpeg fájl méretét bájtban.

add_frame(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None#

Hozzáfűzi az image-t az mjpeg felvételhez. A kép automatikusan átméreteződik a képarány megtartásával a fájl létrehozásakor megadott felbontásra. Bármilyen képformátum elfogadott; ez a metódus szükség szerint kitömöríti, átméretezi/konvertálja és újratömöríti.

A roi az image másolandó érdeklődési terület téglalapjának tuple-je (x, y, w, h). Alapértelmezésként a teljes kép.

Az rgb_channel az RGB565 forráskép-ből kinyerendő és szürkeárnyalatosan megjelenítendő RGB csatorna (0=R, 1=G, 2=B). A -1 (alapértelmezett) letiltja a csatorna-kinyerést.

Az alpha (0-255) szabályozza, hogy a forrásképből mennyi keveredjen a célba. A 255 átlátszatlan; az alacsonyabb értékek fekete háttérrel keverednek; a 0 fekete képkockát eredményez.

A color_palette vagy egy színpaletta enum (pl. image.PALETTE_RAINBOW), vagy egy 256 képpontos RGB565 kép, amelyet színkikereső táblaként használ a forráskép szürkeárnyalatos értékén. Az rgb_channel kinyerés után alkalmazza.

Az alpha_palette egy 256 képpontos szürkeárnyalatos kép, amelyet alfa kikereső táblaként használ, modulálva az alpha-t forrásképpontonként annak szürkeárnyalatos értéke alapján. A 255 átlátszatlan; a 0 átlátszó. Az rgb_channel kinyerés után alkalmazza.

A hint a következők logikai VAGY-a:

A quality (0-100) a nem JPEG forrásképekhez használt JPEG tömörítési minőség.

write(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None#

A Mjpeg.add_frame() aliasa.

sync() None#

Lemezre üríti az mjpeg fájlt, miközben nyitva tartja a további írásokhoz. Hívja időszakosan, hogy biztosítsa az adatok mentését.

close() None#

Véglegesíti az mjpeg felvételt. Egyszer meg kell hívni, amikor a felvétel kész, hogy a fájl megtekinthetővé váljon.