رندر کردن انیمیشن‌های PowerPoint به‌صورت فریم‑به‑فریم به شما امکان می‌دهد هر لحظه از انتقال اسلاید را به‌عنوان یک تصویر استخراج کنید. این برای ایجاد توالی‌های ویدئویی، تولید تصویر بندانگشتی یا انجام تجزیه و تحلیل سفارشی زمان‌بندی انیمیشن مفید است. در این راهنما، خواهید آموخت چگونه انیمیشن PowerPoint را به‌صورت فریم به فریم در Python رندر کنید. ما نشان خواهیم داد که چگونه Aspose.Slides for Python via .NET این کار را ساده می‌کند تا یک اسلاید را پخش کنید، برای هر فریم رندر شده یک کال‌بک دریافت کنید و آن فریم‌ها را به‌صورت فایل‌های PNG ذخیره کنید.

نکات کلیدی

  • Aspose.Slides for Python via .NET یک مدل رویداد به‑صورت .NET‑style ارائه می‌دهد که به‌صورت بومی در پایتون کار می‌کند.
  • PresentationAnimationsGenerator یک خط زمان قابل رندر ایجاد می‌کند در حالی که PresentationPlayer پخش را کنترل می‌کند.
  • با پردازش رویداد frame_tick می‌توانید هر فریم را ضبط کرده و به‌عنوان یک فایل تصویر ذخیره کنید.
  • این روش بر روی هر پلتفرمی که توسط .NET Core پشتیبانی می‌شود کار می‌کند و نیازی به محیط فقط‑ویندوزی ندارد.
  • می‌توانید سرعت پخش را از طریق آرگومان FPS که به PresentationPlayer پاس داده می‌شود، کنترل کنید.

چرا انیمیشن پاورپوینت را فریم به فریم رندر کنیم

توسعه‌دهندگان اغلب به نمایی دقیق پیکسل‌به‌پیکسل از یک انیمیشن برای انتشار، تست یا بایگانی نیاز دارند. صادرات‌های سنتی اسلاید‑به‑تصویر فقط اسلاید ثابت را ضبط می‌کنند و محتوای دینامیک را از دست می‌دهند. رندر فریم‑به‑فریم توالی انیمیشن را حفظ می‌کند و به شما امکان می‌دهد خطوط لوله ویدئویی سفارشی یا بررسی‌های بصری دقیق را بدون ضبط صفحه‌نمایش دستی بسازید.

شروع کار با Aspose.Slides for Python via .NET

Aspose.Slides for Python via .NET یک بستهٔ خالص‑پایتون است که کتابخانه کامل .NET Slides را می‌پیچاند. آن را از PyPI نصب کنید:

pip install aspose-slides

برای اطلاعات بیشتر درباره محصول، صفحه محصول Aspose.Slides را بازدید کنید.

آموزش گام‌به‌گام: رندر فریم‌های انیمیشن

در زیر یک مثال کامل و قابل اجرا آورده شده است که کل جریان کار را نشان می‌دهد.

ورودی → خروجی

Input:    empty presentation (slides are created in code)
Output:   frame_0000.png, frame_0001.png, ... saved to the working directory
Library:  Aspose.Slides for Python via .NET
Language: Python

1. ایجاد یک ارائه و افزودن یک شکل انیمیشنی

گام اول یک اسلاید ساده با یک مستطیل که پس از عمل قبلی به آرامی ظاهر می‌شود، می‌سازد.

import aspose.slides as slides
from aspose.slides.animation import EffectType, EffectSubtype, EffectTriggerType
from aspose.slides.export import PresentationAnimationsGenerator, PresentationPlayer

FPS = 30

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    # Add a rectangle shape
    shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 200, 100)
    # Attach a fade‑in effect that starts automatically
    slide.timeline.main_sequence.add_effect(
        shape, EffectType.FADE, EffectSubtype.NONE, EffectTriggerType.AFTER_PREVIOUS)

۲. تعریف هندلر رویداد Frame‑tick

PresentationPlayer برای هر فریم رندر شده یک رویداد frame_tick ایجاد می‌کند. هندلر تصویر فریم را دریافت کرده و آن را ذخیره می‌کند.

def on_frame_tick(sender, args):
    # `args.get_frame()` returns an IImage that can be saved directly
    with args.get_frame() as frame:
        frame.save("frame_{0:04d}.png".format(sender.frame_index))

3. اجرای تولیدکننده و پخش‌کننده انیمیشن

یک PresentationAnimationsGenerator برای ارائه ایجاد کنید، سپس پخش را با PresentationPlayer کنترل کنید. مقدار FPS تعیین می‌کند که در هر ثانیه چند فریم تولید می‌شود.

with PresentationAnimationsGenerator(presentation) as generator:
    with PresentationPlayer(generator, FPS) as player:
        player.frame_tick += on_frame_tick
        # Start the animation; frames are saved by the event handler above
        generator.run(presentation.slides)

وقتی اسکریپت به پایان می‌رسد، دایرکتوری کاری شامل یک توالی از فایل‌های PNG (frame_0000.png، frame_0001.png، …) است که هر فریم انیمیشن را نشان می‌دهد.

نتیجه‌گیری

Aspose.Slides for Python via .NET به شما امکان می‌دهد تا به‌صورت برنامه‌نویسی انیمیشن یک اسلاید را اجرا کنید و هر فریم را به‌عنوان تصویر با استفاده از الگوی آشنا مبتنی بر رویداد ضبط کنید. با تنظیم FPS و سفارشی‌سازی هندلر رویداد، می‌توانید توالی فریم‌های با کیفیت بالا برای هر انیمیشن تولید کنید و سناریوهای بعدی مانند ایجاد ویدئو، تست خودکار یا مستندسازی بصری را امکان‌پذیر سازید.

سؤالات متداول

  1. آیا برای اجرای این کد به یک ماشین ویندوزی نیاز دارم؟ خیر. Aspose.Slides for Python via .NET بر روی هر پلتفرمی که .NET Core پشتیبانی می‌کند کار می‌کند، از جمله ویندوز، macOS و لینوکس.

  2. آیا می‌توانم فریم‌ها را از یک ارائه چند‑اسلایدی ضبط کنم؟ بله. بر روی اسلایدهای مورد نظر حلقه بزنید و منطق تولیدکننده/پخش‌کننده را برای هر اسلاید فراخوانی کنید.

  3. چه فرمت تصویری برای فریم‌ها ذخیره می‌شود؟ نمونه هر فریم را به عنوان یک فایل PNG ذخیره می‌کند، اما می‌توانید پسوند را در فراخوانی frame.save() تغییر دهید تا JPEG، BMP و غیره خروجی بگیرد.

  4. آیا راهی برای کنترل نرخ فریم وجود دارد؟ مقدار FPS (فریم در ثانیه) به سازنده PresentationPlayer پاس داده می‌شود؛ آن را تنظیم کنید تا تعداد فریم‌های تولید شده در هر ثانیه تغییر کند.

  5. آیا برای اجرای این مثال به یک لایسنس پولی نیاز دارم؟ کد با یک لایسنس ارزیابی موقت اجرا می‌شود؛ برای استفاده در تولید باید یک لایسنس دائمی از Aspose دریافت کنید.

  6. آیا تصاویر تولید شده شامل پس‌زمینه اسلاید و سایر اشیاء خواهند بود؟ هر فریم ضبط شده وضعیت بصری دقیق اسلاید در همان لحظه را نشان می‌دهد، از جمله پس‌زمینه‌ها، شکل‌ها و افکت‌های انیمیشن.

دریافت یک مجوز رایگان و کشف بیشتر

امروز با درخواست یک مجوز موقت، شروع به آزمایش Aspose.Slides for Python via .NET کنید:

مجوز موقت رایگان

منابع اضافی:

بیشتر بخوانید