Vormanimaties toepassen in presentaties met Python
Inleiding
Animaties zijn visuele effecten die toegepast kunnen worden op tekst, afbeeldingen, vormen of grafieken. Ze geven leven aan presentaties of hun onderdelen.
Waarom animaties gebruiken in presentaties?
Met animaties kunt u
- de stroom van informatie beheersen
- belangrijke punten benadrukken
- de interesse of deelname van uw publiek verhogen
- de inhoud makkelijker leesbaar, verteerbaar of verwerkbaar maken
- de aandacht van uw lezers of kijkers vestigen op belangrijke delen in een presentatie
PowerPoint biedt veel opties en tools voor animaties en animatie‑effecten binnen de entrance, exit, emphasis, en motion paths categorieën.
Animaties in Aspose.Slides
- Aspose.Slides biedt de klassen en types die u nodig heeft om met animaties te werken binnen de namespace Aspose.Slides.Animation,
- Aspose.Slides levert meer dan 150 animatie‑effecten via de enumeratie EffectType. Deze effecten zijn in wezen identiek (of equivalent) aan de effecten die in PowerPoint worden gebruikt.
Animatie toepassen op tekstvak
Aspose.Slides voor Python via .NET maakt het mogelijk om animatie toe te passen op de tekst in een vorm.
- Maak een instantie van de klasse Presentation aan.
- Haal een verwijzing naar een dia op via de index.
- Voeg een
rectangleIAutoShape toe. - Voeg tekst toe aan
IAutoShape.TextFrame. - Haal de hoofdvolgorde van effecten op.
- Voeg een animatie‑effect toe aan IAutoShape.
- Stel de eigenschap
TextAnimation.BuildTypein op de waarde uit deBuildType‑enumeratie. - Schrijf de presentatie naar schijf als een PPTX‑bestand.
Deze Python‑code laat zien hoe u het Fade‑effect toepast op een AutoShape en de tekstaniminatie instelt op de By 1st Level Paragraphs waarde:
import aspose.slides as slides
# Instantiëert een presentatieklasse die een presentatiebestand vertegenwoordigt.
with slides.Presentation() as pres:
sld = pres.slides[0]
# Voegt een nieuwe AutoShape toe met tekst
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"
# Haal de hoofdvolgorde van de dia op.
sequence = sld.timeline.main_sequence
# Voegt een Fade‑animatie‑effect toe aan de vorm
effect = sequence.add_effect(autoShape, slides.animation.EffectType.FADE, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.ON_CLICK)
# Animeert de vormtekst per eerste niveau alinea's
effect.text_animation.build_type = slides.animation.BuildType.BY_LEVEL_PARAGRAPHS1
# Sla het PPTX‑bestand op schijf
pres.save("AnimText_out.pptx", slides.export.SaveFormat.PPTX)
Animatie toepassen op PictureFrame
- Maak een instantie van de klasse Presentation aan.
- Haal een verwijzing naar een dia op via de index.
- Voeg een PictureFrame toe aan of haal deze op van de dia.
- Haal de hoofdvolgorde van effecten op.
- Voeg een animatie‑effect toe aan PictureFrame.
- Schrijf de presentatie naar schijf als een PPTX‑bestand.
Deze Python‑code laat zien hoe u het Fly‑effect toepast op een picture frame:
import aspose.slides as slides
import aspose.pydrawing as draw
# Instantiëert een presentatieklasse die een presentatiebestand vertegenwoordigt.
with slides.Presentation() as pres:
# Laad afbeelding die moet worden toegevoegd aan de presentatie‑afbeeldingscollectie
img = draw.Bitmap("aspose-logo.jpg")
image = pres.images.add_image(img)
# Voegt een picture‑frame toe aan de dia
picFrame = pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 100, 100, image)
# Haal de hoofdvolgorde van de dia op.
sequence = pres.slides[0].timeline.main_sequence
# Voegt een Fly‑van‑links‑animatie‑effect toe aan het picture‑frame
effect = sequence.add_effect(picFrame, slides.animation.EffectType.FLY,
slides.animation.EffectSubtype.LEFT,
slides.animation.EffectTriggerType.ON_CLICK)
# Sla het PPTX‑bestand op schijf
pres.save("AnimImage_out.pptx", slides.export.SaveFormat.PPTX)
Animatie toepassen op vorm
- Maak een instantie van de klasse Presentation aan.
- Haal een verwijzing naar een dia op via de index.
- Voeg een
rectangleIAutoShape toe. - Voeg een
BevelIAutoShape toe (wanneer dit object wordt aangeklikt, wordt de animatie afgespeeld). - Maak een reeks effecten aan op de bevel‑vorm.
- Maak een aangepaste
UserPath. - Voeg commando’s toe voor het verplaatsen naar de
UserPath. - Schrijf de presentatie naar schijf als een PPTX‑bestand.
Deze Python‑code laat zien hoe u het PathFootball‑effect toepast op een vorm:
import aspose.slides.animation as anim
import aspose.slides as slides
import aspose.pydrawing as draw
# Instantiëert een Presentation‑klasse die een PPTX‑bestand vertegenwoordigt.
with slides.Presentation() as pres:
sld = pres.slides[0]
# Creëert PathFootball‑effect voor bestaande vorm vanaf nul.
ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 250, 25)
ashp.add_text_frame("Animated TextBox")
# Voegt het PathFootBall‑animatie‑effect toe.
pres.slides[0].timeline.main_sequence.add_effect(ashp,
anim.EffectType.PATH_FOOTBALL,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
# Creëert een soort “knop”.
shapeTrigger = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.BEVEL, 10, 10, 20, 20)
# Creëert een reeks effecten voor de knop.
seqInter = pres.slides[0].timeline.interactive_sequences.add(shapeTrigger)
# Creëert een aangepast gebruikerspad. Ons object wordt pas verplaatst nadat op de knop is geklikt.
fxUserPath = seqInter.add_effect(ashp,
anim.EffectType.PATH_USER,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.ON_CLICK)
# Voegt opdrachten toe voor verplaatsing aangezien het aangemaakte pad leeg is.
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)
# Schrijft het PPTX‑bestand naar schijf
pres.save("AnimExample_out.pptx", slides.export.SaveFormat.PPTX)
Animatie‑effecten die op een vorm zijn toegepast ophalen
De volgende voorbeelden laten zien hoe u de methode get_effects_by_shape van de klasse Sequence kunt gebruiken om alle animatie‑effecten op te halen die op een vorm zijn toegepast.
Voorbeeld 1: Animatie‑effecten ophalen die op een vorm op een normale dia zijn toegepast
Eerder heeft u geleerd hoe u animatie‑effecten toevoegt aan vormen in PowerPoint‑presentaties. De volgende voorbeeldcode laat zien hoe u de effecten ophaalt die op de eerste vorm op de eerste normale dia in de presentatie AnimExample_out.pptx zijn toegepast.
import aspose.slides as slides
with slides.Presentation("AnimExample_out.pptx") as presentation:
first_slide = presentation.slides[0]
# Haalt de hoofdanimatievolgorde van de dia op.
sequence = first_slide.timeline.main_sequence
# Haalt de eerste vorm op de eerste dia op.
shape = first_slide.shapes[0]
# Haalt de op de vorm toegepaste animatie‑effecten op.
shape_effects = sequence.get_effects_by_shape(shape)
if len(shape_effects) > 0:
print("The shape", shape.name, "has", len(shape_effects), "animation effects.")
Voorbeeld 2: Alle animatie‑effecten ophalen, inclusief die afkomstig van placeholders
Als een vorm op een normale dia placeholders heeft die zich op de lay‑out‑dia en/of master‑dia bevinden, en er animatie‑effecten aan deze placeholders zijn toegevoegd, dan worden alle effecten van de vorm afgespeeld tijdens de diavoorstelling, inclusief de effecten die van de placeholders zijn geërfd.
Stel dat we een PowerPoint‑presentatie sample.pptx hebben met één dia die alleen een voettekst‑vorm bevat met de tekst “Made with Aspose.Slides” en het Random Bars‑effect is toegepast op de vorm.

Stel bovendien dat het Split‑effect is toegepast op de voettekst‑placeholder op de layout‑dia.

En tenslotte is het Fly In‑effect toegepast op de voettekst‑placeholder op de master‑dia.

De volgende voorbeeldcode laat zien hoe u de methode get_base_placeholder van de klasse Shape gebruikt om de shape‑placeholders te benaderen en de animatie‑effecten op te halen die op de voettekst‑vorm zijn toegepast, inclusief de geërfde effecten van placeholders op de lay‑out‑ en master‑dia’s.
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]
# Haal de animatie-effecten van de vorm op de normale dia op.
shape = slide.shapes[0]
shape_effects = slide.timeline.main_sequence.get_effects_by_shape(shape)
# Haal de animatie-effecten van de placeholder op de layout-dia op.
layout_shape = shape.get_base_placeholder()
layout_shape_effects = slide.layout_slide.timeline.main_sequence.get_effects_by_shape(layout_shape)
# Haal de animatie-effecten van de placeholder op de master-dia op.
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
Timing‑eigenschappen van animatie‑effect wijzigen
Aspose.Slides voor Python via .NET maakt het mogelijk om de timing‑eigenschappen van een animatie‑effect te wijzigen.
Dit is het Animation Timing‑venster in Microsoft PowerPoint:

Dit zijn de overeenkomsten tussen PowerPoint Timing en de eigenschappen van Effect.Timing:
- De vervolgkeuzelijst Start in PowerPoint Timing komt overeen met de eigenschap Effect.Timing.TriggerType.
- De vervolgkeuzelijst Duration in PowerPoint Timing komt overeen met de eigenschap
Effect.Timing.Duration. De duur van een animatie (in seconden) is de totale tijd die de animatie nodig heeft om één cyclus te voltooien. - De vervolgkeuzelijst Delay in PowerPoint Timing komt overeen met de eigenschap
Effect.Timing.TriggerDelayTime.
Zo wijzigt u de timing‑eigenschappen van een effect:
- Pas of haal het animatie‑effect op.
- Stel nieuwe waarden in voor de
Effect.Timing‑eigenschappen die u nodig heeft. - Sla het gewijzigde PPTX‑bestand op.
Deze Python‑code demonstreert de bewerking:
import aspose.slides as slides
# Instantiëert een presentatieklasse die een presentatiebestand vertegenwoordigt.
with slides.Presentation("AnimExample_out.pptx") as pres:
# Haalt de hoofdvolgorde van de dia op.
sequence = pres.slides[0].timeline.main_sequence
# Haalt het eerste effect van de hoofdvolgorde op.
effect = sequence[0]
# Wijzigt het TriggerType van het effect zodat het start bij klikken
effect.timing.trigger_type = slides.animation.EffectTriggerType.ON_CLICK
# Wijzigt de duur van het effect
effect.timing.duration = 3
# Wijzigt de triggervertragingstijd van het effect
effect.timing.trigger_delay_time = 0.5
# Slaat het PPTX‑bestand op schijf
pres.save("AnimExample_changed.pptx", slides.export.SaveFormat.PPTX)
Geluid van animatie‑effect
Aspose.Slides biedt deze eigenschappen om met geluiden in animatie‑effecten te werken:
soundstop_previous_sound
Geluid toevoegen aan animatie‑effect
Deze Python‑code laat zien hoe u een geluid aan een animatie‑effect toevoegt en het stopt wanneer het volgende effect start:
import aspose.slides as slides
with Presentation("AnimExample_out.pptx") as pres:
# Voegt audio toe aan de audiocollectie van de presentatie
effect_sound = pres.audios.add_audio(open("sampleaudio.wav", "rb").read())
first_slide = pres.slides[0]
# Haalt de hoofdvolgorde van de dia op.
sequence = first_slide.timeline.main_sequence
# Haalt het eerste effect van de hoofdvolgorde op
first_effect = sequence[0]
# Controleert of het effect geen geluid heeft
if not first_effect.stop_previous_sound and first_effect.sound is None:
# Voegt geluid toe aan het eerste effect
first_effect.sound = effect_sound
# Haalt de eerste interactieve volgorde van de dia op.
interactive_sequence = first_slide.timeline.interactive_sequences[0]
# Stelt de vlag “Stop previous sound” van het effect in
interactive_sequence[0].stop_previous_sound = True
# Schrijft het PPTX‑bestand naar schijf
pres.save("AnimExample_Sound_out.pptx", slides.export.SaveFormat.PPTX)
Geluid van animatie‑effect extraheren
- Maak een instantie van de klasse Presentation aan.
- Haal een verwijzing naar een dia op via de index.
- Haal de hoofdvolgorde van effecten op.
- Extraheer het
sound‑bestand dat in elk animatie‑effect is ingebed.
Deze Python‑code laat zien hoe u het in een animatie‑effect ingebedde geluid extraheert:
import aspose.slides as slides
# Instantiëert een presentatieklasse die een presentatiebestand vertegenwoordigt.
with slides.Presentation("EffectSound.pptx") as presentation:
slide = presentation.slides[0]
# Haalt de hoofdvolgorde van de dia op.
sequence = slide.timeline.main_sequence
for effect in sequence:
if effect.sound is None:
continue
# Extraheert het effectgeluid als byte‑array
audio = effect.sound.binary_data
Na animatie
Aspose.Slides voor .NET maakt het mogelijk om de After animation‑eigenschap van een animatie‑effect te wijzigen.
Dit is het Animation Effect‑venster en het uitgebreide menu in Microsoft PowerPoint:

De vervolgkeuzelijst After animation in PowerPoint komt overeen met de volgende eigenschappen:
- Eigenschap
after_animation_typedie het type After animation beschrijft:- More Colors komt overeen met het type COLOR;
- Don’t Dim komt overeen met het type DO_NOT_DIM (standaard after‑animation‑type);
- Hide After Animation komt overeen met het type HIDE_AFTER_ANIMATION;
- Hide on Next Mouse Click komt overeen met het type HIDE_ON_NEXT_MOUSE_CLICK;
- Eigenschap
after_animation_colordie een kleurformaat voor after‑animation definieert. Deze eigenschap werkt in combinatie met het type COLOR. Als u het type wijzigt, wordt de after‑animation‑kleur gewist.
Deze Python‑code laat zien hoe u een after‑animation‑effect wijzigt:
import aspose.slides as slides
# Instantiëert een presentatieklasse die een presentatiebestand vertegenwoordigt
with slides.Presentation("AnimImage_out.pptx") as pres:
first_slide = pres.slides[0]
# Haalt het eerste effect van de hoofdvolgorde op
first_effect = first_slide.timeline.main_sequence[0]
# Wijzigt het after‑animation‑type naar Kleur
first_effect.after_animation_type = AfterAnimationType.COLOR
# Stelt de after‑animation‑dimkleur in
first_effect.after_animation_color.color = Color.alice_blue
# Schrijft het PPTX‑bestand naar schijf
pres.save("AnimImage_AfterAnimation.pptx", slides.export.SaveFormat.PPTX)
Tekst animeren
Aspose.Slides biedt deze eigenschappen om met het Animate text‑blok van een animatie‑effect te werken:
animate_text_typebeschrijft het type tekstanimatie van het effect. De tekst van de vorm kan geanimeerd worden:- Alles tegelijk (ALL_AT_ONCE type)
- Per woord (BY_WORD type)
- Per letter (BY_LETTER type)
delay_between_text_partsstelt een vertraging in tussen de geanimeerde tekstdelen (woorden of letters). Een positieve waarde geeft het percentage van de effectduur aan; een negatieve waarde geeft de vertraging in seconden aan.
Zo wijzigt u de eigenschappen van Animate text:
- Pas of haal het animatie‑effect op.
- Stel de eigenschap
build_typein op de waarde AS_ONE_OBJECT om de By Paragraphs‑animatiemodus uit te schakelen. - Stel nieuwe waarden in voor de eigenschappen
animate_text_typeendelay_between_text_parts. - Sla het gewijzigde PPTX‑bestand op.
Deze Python‑code demonstreert de bewerking:
import aspose.slides as slides
with slides.Presentation("AnimTextBox_out.pptx") as pres:
first_slide = pres.slides[0]
# Haalt het eerste effect van de hoofdvolgorde op
first_effect = first_slide.timeline.main_sequence[0]
# Wijzigt het effect Tekstanimatie-type naar "As One Object"
first_effect.text_animation.build_type = slides.animation.BuildType.AS_ONE_OBJECT
# Wijzigt het effect Animate text type naar "By word"
first_effect.animate_text_type = slides.animation.AnimateTextType.BY_WORD
# Stelt de vertraging tussen woorden in op 20% van de effectduur
first_effect.delay_between_text_parts = 20
# Schrijft het PPTX-bestand naar schijf
pres.save("AnimTextBox_AnimateText.pptx", slides.export.SaveFormat.PPTX)
FAQ
Hoe zorg ik ervoor dat animaties behouden blijven wanneer ik de presentatie publiceer op het web?
Exporteer naar HTML5 (/slides/nl/python-net/export-to-html5/) en schakel de opties in die verantwoordelijk zijn voor animaties van shapes en transities. Platte HTML speelt geen dia‑animaties af, HTML5 wel.
Hoe beïnvloedt het wijzigen van de z‑order (laagvolgorde) van vormen de animatie?
Animatie‑ en tekentvolgorde zijn onafhankelijk: een effect bepaalt de timing en het type verschijnen/verdwijnen, terwijl de z‑order bepaalt wat wat bedekt. Het zichtbare resultaat wordt door hun combinatie bepaald. (Dit is het algemene gedrag van PowerPoint; het Aspose.Slides‑model voor effecten‑en‑vormen volgt dezelfde logica.)
Zijn er beperkingen bij het converteren van animaties naar video voor bepaalde effecten?
In het algemeen worden animaties ondersteund, maar zeldzame gevallen of specifieke effecten kunnen anders worden gerenderd. Het wordt aangeraden de gebruikte effecten en de bibliotheekversie te testen.