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 ينتج عنها ملف gif بتدرج الرمادي sensor.GRAYSCALE بسبعة بتات لكل بكسل.

  • القيمة True ينتج عنها ملف gif بنظام sensor.RGB565 بسبعة بتات لكل بكسل.

loop عندما تكون True ينتج عنها تكرار ملف gif تلقائيًا أثناء التشغيل.

width() int

تعيد عرض (الدقة الأفقية) ملف gif.

height() int

تعيد ارتفاع (الدقة الرأسية) ملف gif.

format() int

تعيد sensor.RGB565 إذا كان اللون True أو sensor.GRAYSCALE خلاف ذلك.

size() int

تعيد حجم ملف gif حتى الآن. يتم تحديث هذه القيمة بعد إضافة الإطارات.

loop() bool

تعيد ما إذا كان كائن gif قد أُنشئ مع تفعيل loop.

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

تضيف صورة إلى تسجيل gif. يجب أن يتطابق عرض الصورة وارتفاعها ووضع اللون مع القيم المستخدمة في الباني.

delay هو عدد أجزاء المئة من الثانية المراد انتظارها قبل عرض هذا الإطار بعد الإطار السابق.

close() None

تنهي تسجيل gif. يجب استدعاء هذه الطريقة بمجرد اكتمال التسجيل لجعل الملف قابلاً للعرض.