Alakzatanimációk alkalmazása prezentációkban Python segítségével
Bevezetés
Az animációk vizuális hatások, amelyeket szövegekre, képekre, alakzatokra vagy diagramokra lehet alkalmazni. Élettel töltik meg az előadásokat vagy azok elemeit.
Miért használjunk animációkat az előadásokban?
Az animációk segítségével
- az információ áramlását vezérelje
- kiemelje a fontos pontokat
- növelje a közönség érdeklődését vagy részvételét
- megkönnyítse a tartalom olvasását, befogadását vagy feldolgozását
- felhívja az olvasók vagy nézők figyelmét az előadás fontos részeire
A PowerPoint sok lehetőséget és eszközt kínál az animációkhoz és animációs hatásokhoz a belépés, kilépés, kiemelés és mozgási útvonalak kategóriákban.
Animációk az Aspose.Slides-ban
- Az Aspose.Slides biztosítja az animációkkal való munkához szükséges osztályokat és típusokat a Aspose.Slides.Animation névtérben,
- Az Aspose.Slides több mint 150 animációs hatást kínál a EffectType felsorolásban. Ezek a hatások lényegében ugyanazok (vagy ekvivalensek), mint a PowerPoint-ban használtak.
Animáció alkalmazása szövegdobozra
Az Aspose.Slides for Python via .NET lehetővé teszi, hogy animációt alkalmazz a forma szövegére.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy
rectangleIAutoShape-t. - Adjon szöveget a
IAutoShape.TextFrame-hez. - Szerezze meg a fő hatássorozatot.
- Adjon animációs hatást a IAutoShape-hez.
- Állítsa be a
TextAnimation.BuildTypetulajdonságot aBuildTypefelsorolás értékére. - Írja a prezentációt lemezre PPTX fájlként.
Ez a Python kód bemutatja, hogyan alkalmazza a Fade hatást egy AutoShape-re, és hogyan állítsa be a szöveganimációt a By 1st Level Paragraphs értékre:
import aspose.slides as slides
# Létrehozza a prezentációt reprezentáló osztályt, amely egy prezentációs fájlt képvisel.
with slides.Presentation() as pres:
sld = pres.slides[0]
# Új AutoShape-et ad hozzá szöveggel
autoShape = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 100)
textFrame = autoShape.text_frame
textFrame.text = "First paragraph \nSecond paragraph \n Third paragraph"
# Lekéri a dia fő szekvenciáját.
sequence = sld.timeline.main_sequence
# Fade animációs hatást ad hozzá az alakzathoz
effect = sequence.add_effect(autoShape, slides.animation.EffectType.FADE, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.ON_CLICK)
# Az alakzat szövegét az első szintű bekezdések szerint animálja
effect.text_animation.build_type = slides.animation.BuildType.BY_LEVEL_PARAGRAPHS1
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimText_out.pptx", slides.export.SaveFormat.PPTX)
Animáció alkalmazása PictureFrame-re
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá vagy szerezze meg a PictureFrame elemet a dián.
- Szerezze meg a fő hatássorozatot.
- Adjon animációs hatást a PictureFrame-hez.
- Mentse a prezentációt lemezre PPTX fájlként.
Ez a Python kód bemutatja, hogyan alkalmazza a Fly hatást egy képkeretre:
import aspose.slides as slides
import aspose.pydrawing as draw
# Példányosít egy prezentációs osztályt, amely egy prezentációs fájlt képvisel.
with slides.Presentation() as pres:
# Betölti a képet, amelyet a prezentáció képtárához adunk hozzá
img = draw.Bitmap("aspose-logo.jpg")
image = pres.images.add_image(img)
# Képkockát ad hozzá a diára
picFrame = pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 100, 100, image)
# Lekéri a dia fő szekvenciáját.
sequence = pres.slides[0].timeline.main_sequence
# Fly from Left animációs hatást ad a képkockához
effect = sequence.add_effect(picFrame, slides.animation.EffectType.FLY,
slides.animation.EffectSubtype.LEFT,
slides.animation.EffectTriggerType.ON_CLICK)
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimImage_out.pptx", slides.export.SaveFormat.PPTX)
Animáció alkalmazása alakzatra
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy
rectangleIAutoShape-t. - Adjon hozzá egy
BevelIAutoShape elemet (amikor ez az objektumra kattintanak, az animáció lejátszásra kerül). - Hozzon létre egy hatássorozatot a bevel alakzaton.
- Hozzon létre egy egyedi
UserPath-t. - Adjon parancsokat a
UserPath-ra való mozgáshoz. - Mentse a prezentációt lemezre PPTX fájlként.
Ez a Python kód bemutatja, hogyan alkalmazza a PathFootball (path football) hatást egy alakzatra:
import aspose.slides.animation as anim
import aspose.slides as slides
import aspose.pydrawing as draw
# Példányosít egy Presentation osztályt, amely egy PPTX fájlt képvisel.
with slides.Presentation() as pres:
sld = pres.slides[0]
# Létrehozza a PathFootball hatást a meglévő alakzatra a nulláról.
ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 250, 25)
ashp.add_text_frame("Animated TextBox")
# Hozzáadja a PathFootBall animációs hatást.
pres.slides[0].timeline.main_sequence.add_effect(ashp,
anim.EffectType.PATH_FOOTBALL,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
# Létrehoz egyfajta "gombot".
shapeTrigger = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.BEVEL, 10, 10, 20, 20)
# Létrehoz egy hatássorozatot a gombhoz.
seqInter = pres.slides[0].timeline.interactive_sequences.add(shapeTrigger)
# Létrehoz egy egyéni felhasználói útvonalat. Az objektumunk csak a gomb megnyomása után lesz mozgatva.
fxUserPath = seqInter.add_effect(ashp,
anim.EffectType.PATH_USER,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.ON_CLICK)
# Parancsokat ad a mozgáshoz, mivel a létrehozott útvonal üres.
motionBhv = fxUserPath.behaviors[0]
pts = [draw.PointF(0.076, 0.59)]
motionBhv.path.add(anim.MotionCommandPathType.LINE_TO, pts, anim.MotionPathPointsType.AUTO, True)
pts = [draw.PointF(-0.076, -0.59)]
motionBhv.path.add(anim.MotionCommandPathType.LINE_TO, pts, anim.MotionPathPointsType.AUTO, False)
motionBhv.path.add(anim.MotionCommandPathType.END, None, anim.MotionPathPointsType.AUTO, False)
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimExample_out.pptx", slides.export.SaveFormat.PPTX)
Alkalmazott animációs hatások lekérése alakzatra
Az alábbi példák bemutatják, hogyan használja a get_effects_by_shape metódust a Sequence osztályból, hogy lekérje az adott alakzatra alkalmazott összes animációs hatást.
Példa 1: Animációs hatások lekérése egy alakzatra egy normál dián
Korábban megtanulta, hogyan adjon animációs hatásokat alakzatokhoz a PowerPoint előadásokban. Az alábbi mintakód bemutatja, hogyan kérje le az első alakzatra az első normál dián a AnimExample_out.pptx prezentációban alkalmazott hatásokat.
import aspose.slides as slides
with slides.Presentation("AnimExample_out.pptx") as presentation:
first_slide = presentation.slides[0]
# Lekéri a dia fő animációs sorozatát.
sequence = first_slide.timeline.main_sequence
# Lekéri az első alakzatot az első dián.
shape = first_slide.shapes[0]
# Lekéri az alakzatra alkalmazott animációs hatásokat.
shape_effects = sequence.get_effects_by_shape(shape)
if len(shape_effects) > 0:
print("The shape", shape.name, "has", len(shape_effects), "animation effects.")
Példa 2: Az összes animációs hatás lekérése, beleértve a helyőrzőkből örökölt hatásokat is
Ha egy alakzat egy normál dián helyőrzőkkel rendelkezik, amelyek a layout dián és/vagy a mester dián találhatók, és ezekhez a helyőrzőkhöz animációs hatásokat adtak hozzá, akkor az alakzat összes hatása le lesz játszva a diavetítés során, beleértve a helyőrzőkből örökölt hatásokat is.
Tegyük fel, hogy van egy sample.pptx PowerPoint prezentációfájlunk, amely egyetlen diát tartalmaz, azon egy lábléc alakzatot a “Made with Aspose.Slides” szöveggel, és a Random Bars hatás van alkalmazva az alakzatra.

Tegyük fel továbbá, hogy a Split hatás a layout dián lévő lábléc helyőrzőre van alkalmazva.

Végül a Fly In hatás a master dián lévő lábléc helyőrzőre van alkalmazva.

Az alábbi mintakód bemutatja, hogyan használja a get_base_placeholder metódust a Shape osztályból, hogy hozzáférjen a forma helyőrzőkhöz, és lekérje a lábléc alakzatra alkalmazott animációs hatásokat, beleértve a layout és master diák helyőrzőiből örökölt hatásokat is.
import aspose.slides as slides
def print_effects(effects):
for effect in effects:
print(effect.type.name, effect.subtype.name)
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
# A normális dián lévő alakzat animációs hatásainak lekérése.
shape = slide.shapes[0]
shape_effects = slide.timeline.main_sequence.get_effects_by_shape(shape)
# A layout dián lévő helyőrző animációs hatásainak lekérése.
layout_shape = shape.get_base_placeholder()
layout_shape_effects = slide.layout_slide.timeline.main_sequence.get_effects_by_shape(layout_shape)
# A master dián lévő helyőrző animációs hatásainak lekérése.
master_shape = layout_shape.get_base_placeholder()
master_shape_effects = slide.layout_slide.master_slide.timeline.main_sequence.get_effects_by_shape(master_shape)
print("Main sequence of shape effects:")
print_effects(master_shape_effects)
print_effects(layout_shape_effects)
print_effects(shape_effects)
Output:
Main sequence of shape effects:
FLY BOTTOM
SPLIT VERTICAL_IN
RANDOM_BARS HORIZONTAL
Animációs hatás időzítési tulajdonságainak módosítása
Az Aspose.Slides for Python via .NET lehetővé teszi, hogy módosítsa egy animációs hatás időzítési tulajdonságait.
Ez a Microsoft PowerPoint animációs időzítési ablaka:

Ezek a megfeleltetések a PowerPoint időzítés és az Effect.Timing tulajdonságok között:
- A PowerPoint időzítés Start legördülő listája megfelel a Effect.Timing.TriggerType tulajdonságnak.
- A PowerPoint időzítés Duration megfelel az
Effect.Timing.Durationtulajdonságnak. Egy animáció időtartama (másodpercben) az az össz idő, amely alatt az animáció befejeződik egy ciklusban. - A PowerPoint időzítés Delay megfelel az
Effect.Timing.TriggerDelayTimetulajdonságnak.
Ez a módja annak, hogyan változtathatja meg az Effect Timing tulajdonságokat:
- Alkalmazza (Apply) vagy szerezze meg az animációs hatást.
- Állítsa be a szükséges
Effect.Timingtulajdonságok új értékeit. - Mentse a módosított PPTX fájlt.
Ez a Python kód demonstrálja a műveletet:
import aspose.slides as slides
# Példányosít egy prezentációs osztályt, amely egy prezentációs fájlt képvisel.
with slides.Presentation("AnimExample_out.pptx") as pres:
# Lekéri a dia fő sorozatát.
sequence = pres.slides[0].timeline.main_sequence
# Lekéri a fő sorozat első hatását.
effect = sequence[0]
# Módosítja a hatás TriggerType-át, hogy kattintásra induljon
effect.timing.trigger_type = slides.animation.EffectTriggerType.ON_CLICK
# Módosítja a hatás időtartamát
effect.timing.duration = 3
# Módosítja a hatás TriggerDelayTime-ot
effect.timing.trigger_delay_time = 0.5
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimExample_changed.pptx", slides.export.SaveFormat.PPTX)
Animációs hatás hangja
Az Aspose.Slides ezekkel a tulajdonságokkal teszi lehetővé a hangok kezelését animációs hatásokban:
soundstop_previous_sound
Animációs hatás hangjának hozzáadása
Ez a Python kód bemutatja, hogyan adjon hozzá egy animációs hatás hangot, és hogyan állítsa le, amikor a következő hatás elindul:
import aspose.slides as slides
with Presentation("AnimExample_out.pptx") as pres:
# Hozzáad egy hangfájlt a prezentáció audio gyűjteményéhez
effect_sound = pres.audios.add_audio(open("sampleaudio.wav", "rb").read())
first_slide = pres.slides[0]
# Lekéri a dia fő sorozatát.
sequence = first_slide.timeline.main_sequence
# Lekéri a fő sorozat első hatását.
first_effect = sequence[0]
# Ellenőrzi, hogy a hatásnak nincs hangja
if not first_effect.stop_previous_sound and first_effect.sound is None:
# Hozzáad hangot az első hatáshoz
first_effect.sound = effect_sound
# Lekéri a dia első interaktív sorozatát.
interactive_sequence = first_slide.timeline.interactive_sequences[0]
# Beállítja a hatás "Előző hang leállítása" jelzőjét
interactive_sequence[0].stop_previous_sound = True
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimExample_Sound_out.pptx", slides.export.SaveFormat.PPTX)
Animációs hatás hangjának kinyerése
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Szerezze meg a fő hatássorozatot.
- Kinyerje a
soundbeágyazott hangot minden animációs hatásból.
Ez a Python kód bemutatja, hogyan nyerje ki az animációs hatásba beágyazott hangot:
import aspose.slides as slides
# Példányosít egy prezentációs osztályt, amely egy prezentációs fájlt képvisel.
with slides.Presentation("EffectSound.pptx") as presentation:
slide = presentation.slides[0]
# Lekéri a dia fő sorozatát.
sequence = slide.timeline.main_sequence
for effect in sequence:
if effect.sound is None:
continue
# Kinyeri a hatás hangját bájttömbként
audio = effect.sound.binary_data
Animáció után
Az Aspose.Slides for .NET lehetővé teszi, hogy módosítsa egy animációs hatás „After animation” tulajdonságát.
Ez a Microsoft PowerPoint animációs hatás ablaka és kiterjesztett menüje:

A PowerPoint Effect After animation legördülő listája a következő tulajdonságoknak felel meg:
after_animation_typetulajdonság, amely leírja az After animation típust:- A PowerPoint More Colors a COLOR típusnak felel meg;
- A PowerPoint Don’t Dim elem a DO_NOT_DIM típusnak felel meg (az alapértelmezett after animation típus);
- A PowerPoint Hide After Animation elem a HIDE_AFTER_ANIMATION típusnak felel meg;
- A PowerPoint Hide on Next Mouse Click elem a HIDE_ON_NEXT_MOUSE_CLICK típusnak felel meg;
after_animation_colortulajdonság, amely egy after animation színformátumot definiál. Ez a tulajdonság a COLOR típussal együtt működik. Ha a típust másikra változtatja, az after animation szín törlődik.
Ez a Python kód bemutatja, hogyan módosítsa az after animation hatást:
import aspose.slides as slides
# Példányosít egy prezentációs osztályt, amely egy prezentációs fájlt képvisel
with slides.Presentation("AnimImage_out.pptx") as pres:
first_slide = pres.slides[0]
# Lekéri a fő sorozat első hatását
first_effect = first_slide.timeline.main_sequence[0]
# Megváltoztatja az after animation típusát Color-re
first_effect.after_animation_type = AfterAnimationType.COLOR
# Beállítja az after animation sötétítő színt
first_effect.after_animation_color.color = Color.alice_blue
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimImage_AfterAnimation.pptx", slides.export.SaveFormat.PPTX)
Szöveg animálása
Az Aspose.Slides ezekkel a tulajdonságokkal teszi lehetővé, hogy egy animációs hatás Animate text blokkját kezelje:
animate_text_typeamely leírja az animációs hatás Animate text típusát. A forma szövege animálható:- Egyszerre (ALL_AT_ONCE típus)
- Szónként (BY_WORD típus)
- Betűnként (BY_LETTER típus)
delay_between_text_partskésleltetést állít be az animált szövegrészek (szavak vagy betűk) között. A pozitív érték a hatás időtartamának százalékát adja meg. A negatív érték késleltetést másodpercben határoz meg.
Ez a módja annak, hogyan változtathatja meg az Effect Animate text tulajdonságokat:
- Alkalmazza (Apply) vagy szerezze meg az animációs hatást.
- Állítsa be a
build_typetulajdonságot az AS_ONE_OBJECT értékre, hogy kikapcsolja a By Paragraphs animációs módot. - Állítson be új értékeket a
animate_text_typeésdelay_between_text_partstulajdonságokhoz. - Mentse a módosított PPTX fájlt.
Ez a Python kód demonstrálja a műveletet:
import aspose.slides as slides
with slides.Presentation("AnimTextBox_out.pptx") as pres:
first_slide = pres.slides[0]
# Lekéri a fő sorozat első hatását
first_effect = first_slide.timeline.main_sequence[0]
# Megváltoztatja a hatás szöveganimáció típusát "As One Object"-ra
first_effect.text_animation.build_type = slides.animation.BuildType.AS_ONE_OBJECT
# Megváltoztatja a hatás Animate text típusát "By word"-ra
first_effect.animate_text_type = slides.animation.AnimateTextType.BY_WORD
# Beállítja a szavak közötti késleltetést a hatás időtartamának 20%-ára
first_effect.delay_between_text_parts = 20
# Elmenti a PPTX fájlt a lemezre
pres.save("AnimTextBox_AnimateText.pptx", slides.export.SaveFormat.PPTX)
GYIK
Hogyan biztosíthatom, hogy az animációk megmaradjanak a prezentáció webre közzétételekor?
Export to HTML5 és engedélyezze a beállításokat, amelyek a shape és a transition animációkat kezelik. A sima HTML nem játssza le a diák animációit, míg a HTML5 igen.
Hogyan befolyásolja az animációt az alakzatok z-sorrendjének (rétegsorrendjének) módosítása?
Az animációs és a rajzolási sorrend független egymástól: egy hatás szabályozza a megjelenés/tűnés időzítését és típusát, míg a z-sorrend meghatározza, mi takarja meg a másikat. A látható eredmény ezek kombinációjából származik. (Ez a PowerPoint általános viselkedése; az Aspose.Slides animáció‑és alakzatmodellje ugyanazt a logikát követi.)
Vannak korlátozások az animációk videóra konvertálásakor bizonyos hatások esetén?
Általánosságban a animációk támogatottak, de ritka esetekben vagy speciális hatások esetén eltérő módon jelenhetnek meg. Ajánlott a használt hatásokkal és a könyvtár verziójával tesztelni.