Diaátmenetek kezelése prezentációkban Python segítségével

Áttekintés

A diavetítési átmenetek szabályozzák, hogy a diák hogyan jelennek meg egy diavetítés során. Az Aspose.Slides for Python via .NET segítségével kiválaszthat egy átmenet hatást minden diához, beállíthatja a haladást egérkattintás vagy időzítő alapján, valamint módosíthatja az effektusra jellemző beállításokat. Ez a cikk Python példákat használ az átmenetek alkalmazására, a pontos átmeneti időtartamok beállítására, a dia időzítésének kezelésére, valamint egy Morph átmenet létrehozására két dia között. A példák azt is bemutatják, hogyan menthetők a beállítások PPTX fájlba.

Diaátmenet hozzáadása

Az átmenet alkalmazásához töltse be a prezentációt a Presentation osztállyal, és érje el a dia slide_show_transition tulajdonságát. Állítsa be a type értékét a TransitionType felsorolás egy elemére, majd mentse a prezentációt.

A következő példa egy Circle átmenetet alkalmaz az első diára, és egy Comb átmenetet a másodikra. Használjon egy input.pptx fájlt, amely legalább két diát tartalmaz.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    if len(presentation.slides) >= 2:
        presentation.slides[0].slide_show_transition.type = slides.slideshow.TransitionType.CIRCLE
        presentation.slides[1].slide_show_transition.type = slides.slideshow.TransitionType.COMB

        presentation.save("slide-transitions.pptx", slides.export.SaveFormat.PPTX)
    else:
        print("The input presentation must contain at least two slides.")

Haladó diaátmenet hozzáadása

Beállíthatja, hogy a dia mennyi ideig marad a képernyőn, és hogy egérkattintás lépteti-e a diavetítést. A következő tulajdonságok szabályozzák ezt a viselkedést:

  • advance_on_click lehetővé teszi a nézőnek, hogy egérkattintással lépjen előre.
  • advance_after engedélyezi az automatikus léptetést.
  • advance_after_time megadja az automatikus léptetés előtti késleltetést ezredmásodpercben.

Engedélyezze mind a kattintásos, mind az időzített léptetést, hogy a néző kattintással vagy a várakozással léphessen tovább. Ha csak az időzítőt szeretné használni, állítsa a [advance_on_click] értékét False-ra. A késleltetés határozza meg, mikor lép tovább a diavetítés; ez nem állítja be a vizuális átmenet hatás időtartamát.

Ez a példa különböző hatásokat rendel az első három diához, és automatikus léptetést engedélyez 3, 5 és 7 másodperc után, sorrendben. Egérkattintásokkal is léptethetők ezek a diák. Használjon egy input.pptx fájlt, amely legalább három diát tartalmaz.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    if len(presentation.slides) >= 3:
        first_transition = presentation.slides[0].slide_show_transition
        first_transition.type = slides.slideshow.TransitionType.CIRCLE
        first_transition.advance_on_click = True
        first_transition.advance_after = True
        first_transition.advance_after_time = 3000

        second_transition = presentation.slides[1].slide_show_transition
        second_transition.type = slides.slideshow.TransitionType.COMB
        second_transition.advance_on_click = True
        second_transition.advance_after = True
        second_transition.advance_after_time = 5000

        third_transition = presentation.slides[2].slide_show_transition
        third_transition.type = slides.slideshow.TransitionType.ZOOM
        third_transition.advance_on_click = True
        third_transition.advance_after = True
        third_transition.advance_after_time = 7000

        presentation.save("advanced-transitions.pptx", slides.export.SaveFormat.PPTX)
    else:
        print("The input presentation must contain at least three slides.")

Az időzített léptetés engedélyezett állapotának ellenőrzéséhez olvassa ki a [advance_after] értékét. Egy tárolt késleltetés önmagában nem jelzi, hogy az időzítő aktív.

A következő példa megnyitja a fent mentett fájlt, jelentést készít minden engedélyezett időzítőről, és letiltja az automatikus léptetést azoknál a diáknál, ahol a késleltetés több mint két másodperc. Engedélyezi a kattintást ezeknél a diáknál, majd elmenti a frissített beállításokat.

import aspose.slides as slides

with slides.Presentation("advanced-transitions.pptx") as presentation:
    for slide in presentation.slides:
        transition = slide.slide_show_transition

        if transition.advance_after:
            print(f"Slide {slide.slide_number}: advance after {transition.advance_after_time} ms.")

            if transition.advance_after_time > 2000:
                transition.advance_after = False
                transition.advance_on_click = True

    presentation.save("adjusted-transitions.pptx", slides.export.SaveFormat.PPTX)

Az átmenet időzítésének pontos szabályozása

Használja a duration beállítást egy átmeneti hatás pontos hosszának ezredmásodpercben való megadásához. A dia slide_show_transition tulajdonsága ezeket a beállításokat a SlideShowTransition révén teszi elérhetővé:

Tulajdonság Cél
duration Beállítja az átmeneti hatás önmagának időtartamát ezredmásodpercben.
advance_after_time Beállítja a diák automatikus léptetése előtti késleltetést ezredmásodpercben. Engedélyezze a [advance_after] értéket a timer aktiválásához.
speed Kiválaszt egy előre meghatározott sebességkategóriát a [TransitionSpeed] felsorolásból: SLOW, MEDIUM vagy FAST. Akkor használják, ha nincs megadva pontos időtartam.

A [duration] csak az átmenet hatását vezérli; nem határozza meg, mennyi ideig marad látható a dia. Az automatikus léptetés késleltetését külön kell beállítani. Ha nincs explicit időtartam megadva, az Aspose.Slides a hatás időtartamát a átmenet típusából és a [speed] értékből határozza meg.

Azonos időtartam alkalmazása minden diára

A konzisztens tempó érdekében alkalmazzon minden diára ugyanazt a hatást és pontos időtartamot. Ez a példa betölti a input.pptx fájlt, a [TransitionType]‑ből a Fade‑et választja, és minden átmenetnek 750 ezredmásodperc időtartamot ad. Ezen felül engedélyezi az automatikus léptetést 5 000 ezredmásodperc után, és letiltja a kattintásos léptetést, majd PPTX‑ként menti az eredményt.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    for slide in presentation.slides:
        transition = slide.slide_show_transition
        transition.type = slides.slideshow.TransitionType.FADE
        transition.duration = 750

        # Állítsa be az automatikus léptetést a hatás időtartamától függetlenül.
        transition.advance_after = True
        transition.advance_after_time = 5000
        transition.advance_on_click = False

    presentation.save("precise-transitions.pptx", slides.export.SaveFormat.PPTX)

Különböző időtartamok beállítása egyes diákhoz

Különböző diák különböző hatásidőket használhatnak. Például egy rövid átmenetet a cím-diára, és egy hosszabbat a szekcióbevezető diára. Ez a példa 500 ezredmásodpercet állít be az első diára, és 1 200 ezredmásodpercet a másodikra. Használjon egy input.pptx fájlt, amely legalább két diát tartalmaz.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    if len(presentation.slides) >= 2:
        first_transition = presentation.slides[0].slide_show_transition
        first_transition.type = slides.slideshow.TransitionType.FADE
        first_transition.duration = 500

        second_transition = presentation.slides[1].slide_show_transition
        second_transition.type = slides.slideshow.TransitionType.PUSH
        second_transition.duration = 1200

        presentation.save("individual-transition-durations.pptx", slides.export.SaveFormat.PPTX)
    else:
        print("The input presentation must contain at least two slides.")

Az átmenetek összehangolása animált kimenettel

A animated GIF, HTML5 presentation, vagy video elkészítésekor állítsa be a pontos átmeneti időtartamokat az exportálás előtt, hogy megfeleljenek az kívánt tempónak. Például használjon 600 ezredmásodperces halványítást a jelenetek között, és külön beállítsa minden dia előrehaladási késleltetését, hogy elegendő idő legyen a narráció vagy tartalom számára.

GIF és videó esetén az eredmény frame rate‑jét koherálja a hatás időtartamával: 600 ezredmásodperc 30 fps‑nél 18 képkockának felel meg. HTML5‑ben engedélyezze az animált átmeneteket az export beállításokban. Ellenőrizze a választott export formátum által támogatott hatásokat és időzítési lehetőségeket, majd tekintse meg az eredményt a szinkronizáció megerősítéséhez.

Meglévő átmeneti időtartam kiolvasása

Olvassa ki a [duration] értéket az átmenet módosítása előtt, hogy meghatározza, tárolva van-e explicit érték. A -1 érték azt jelenti, hogy nincs explicit időtartam beállítva; egy nemnegatív érték a tárolt időtartamot ezredmásodpercben jelzi. A be nem állított érték nem a számított lejátszási időtartam: az Aspose.Slides a átmenet típusát és a [speed] értéket használja az időtartam meghatározásához. Egy átmenet típus beállítása inicializálhat egy időtartamot, ezért először ellenőrizze az eredeti beállításokat.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    for slide in presentation.slides:
        transition = slide.slide_show_transition
        duration = transition.duration

        if duration >= 0:
            print(f"Slide {slide.slide_number}: stored transition duration is {duration} ms.")
        else:
            print(f"Slide {slide.slide_number}: no explicit duration; timing depends on {transition.type} and {transition.speed}.")

Morph átmenet

A Morph átmenet animálja az egymást követő diákon lévő objektumok közötti változásokat. Egy egyszerű Morph effektus létrehozásához klónozza a diát, mozgassa vagy átméretezze az objektumot a klónon, majd alkalmazza a Morph átmenetet a második diára. Ez lehetővé teszi, hogy az átmenet a megfelelő objektumok eredeti és módosított állapota között animáljon.

A következő példa egy szöveges téglalappal rendelkező diát hoz létre, klónozza a diát, és a klónon megváltoztatja a téglalap pozícióját és méretét. Ezután a [TransitionType] felsorolásból a Morph‑ot választja a második diára. Nyissa meg a mentett fájlt egy olyan prezentáció megjelenítőben, amely támogatja a Morph‑ot, hogy lássa a hatást a diavetítés során.

import aspose.slides as slides

with slides.Presentation() as presentation:
    first_slide = presentation.slides[0]
    rectangle = first_slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 400, 100)
    rectangle.text_frame.text = "Morph transition"

    second_slide = presentation.slides.add_clone(first_slide)
    moved_rectangle = second_slide.shapes[0]
    moved_rectangle.x += 100
    moved_rectangle.y += 50
    moved_rectangle.width -= 200
    moved_rectangle.height -= 10

    second_slide.slide_show_transition.type = slides.slideshow.TransitionType.MORPH

    presentation.save("morph-transition.pptx", slides.export.SaveFormat.PPTX)

Morph átmenet típusai

A [TransitionMorphType] felsorolás szabályozza, hogy a Morph hogyan párosítja és animálja a tartalmat:

  • [BY_OBJECT] minden alakzatot egy egész objektumként kezel.
  • [BY_WORD] a szöveget szavak egyeztetésével animálja, ahol lehetséges.
  • [BY_CHAR] a szöveget karakterek egyeztetésével animálja, ahol lehetséges.

Állítsa be a [type] átmenetet Morph‑ra, mielőtt elérné a [value] tulajdonságot. Az érték ezután a [MorphTransition] objektumot adja vissza, amelynek a [morph_type] tulajdonsága választja ki a párosítási módot.

Ez a példa megnyitja az előző részben létrehozott prezentációt, és beállítja a második diát, hogy szó-alapú Morph animációt használjon.

import aspose.slides as slides

with slides.Presentation("morph-transition.pptx") as presentation:
    if len(presentation.slides) >= 2:
        transition = presentation.slides[1].slide_show_transition
        transition.type = slides.slideshow.TransitionType.MORPH
        morph_transition = transition.value

        if isinstance(morph_transition, slides.slideshow.MorphTransition):
            morph_transition.morph_type = slides.slideshow.TransitionMorphType.BY_WORD
            presentation.save("morph-by-word.pptx", slides.export.SaveFormat.PPTX)
        else:
            print("Morph transition options are unavailable.")
    else:
        print("The input presentation must contain at least two slides.")

Átmeneti hatások beállítása

Néhány átmenet további beállítási lehetőségeket tár fel, például az irányt vagy azt, hogy a hatás fekete képernyőről indul‑e. Az elérhető opciók a kiválasztott átmenet [type] értékétől függnek. Először állítsa be a típust, majd használja a megfelelő átmenet objektumot a [value]‑ból.

A következő példa a input.pptx első diájára egy Cut átmenetet alkalmaz. A [from_black] beállítást az [OptionalBlackTransition] használatával állítja be, hogy a átmenet fekete képernyőről induljon.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    transition = presentation.slides[0].slide_show_transition
    transition.type = slides.slideshow.TransitionType.CUT
    cut_transition = transition.value

    if isinstance(cut_transition, slides.slideshow.OptionalBlackTransition):
        cut_transition.from_black = True
        presentation.save("cut-from-black.pptx", slides.export.SaveFormat.PPTX)
    else:
        print("Cut transition options are unavailable.")

GYIK

Vezérelhetem a diaátmenet lejátszási sebességét?

Igen. Használja a [duration] beállítást, ha pontos hatásidőt ezredmásodpercben kell megadni. Használja a [speed] beállítást, ha egy előre meghatározott [TransitionSpeed] kategória — SLOW, MEDIUM vagy FAST — elegendő, és nincs explicit időtartam beállítva. Ezek a beállítások az átmeneti hatást szabályozzák az automatikus léptetési késleltetéstől függetlenül.

Csatolhatok hangot egy átmenethez, és hurkolhatom?

Igen. A beágyazott hangot a [sound] tulajdonsághoz rendelheti, a [sound_mode] értéket a [TransitionSoundMode] felsorolásból START_SOUND‑ra állíthatja, és engedélyezheti a [sound_loop] beállítást. A hang a diavetítés következő hangeseményéig ismétlődik.

Mi a leggyorsabb módja annak, hogy ugyanazt az átmenetet alkalmazzam minden diára?

Iteráljon a prezentáció [slides] gyűjteményén, és állítsa be minden dia átmenet [type] értékét ugyanarra az értékre. Állítsa be a timing és hatás beállításokat ugyanabban a ciklusban, hogy a viselkedés minden dián egységes legyen.

Hogyan ellenőrizhetem, hogy melyik átmenet van jelenleg beállítva egy dián?

Olvassa ki a [type] tulajdonságot a dia [slide_show_transition] értékéből. Ez egy értéket ad vissza a [TransitionType] felsorolásból; a NONE azt jelenti, hogy nincs alkalmazva átmeneti hatás.