Animation de forme

Les animations sont des effets visuels qui peuvent être appliqués à des textes, images, formes ou graphique. Elles donnent vie aux présentations ou à ses éléments.

Pourquoi utiliser des animations dans les présentations ?

En utilisant des animations, vous pouvez

  • contrôler le flux d’information
  • mettre en valeur des points importants
  • augmenter l’intérêt ou la participation de votre audience
  • rendre le contenu plus facile à lire, assimiler ou traiter
  • attirer l’attention de vos lecteurs ou spectateurs vers des parties importantes d’une présentation

PowerPoint propose de nombreuses options et outils pour les animations et effets d’animation dans les catégories entrée, sortie, emphase et chemins de mouvement.

Animations dans Aspose.Slides

  • Aspose.Slides fournit les classes et types nécessaires pour travailler avec les animations sous l’espace de noms Aspose.Slides.Animation,
  • Aspose.Slides propose plus de 150 effets d’animation sous l’énumération EffectType. Ces effets sont essentiellement les mêmes (ou équivalents) que ceux utilisés dans PowerPoint.

Appliquer une animation à TextBox

Aspose.Slides pour .NET vous permet d’appliquer une animation au texte d’une forme.

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’un diapositive via son index.
  3. Ajoutez un rectangle IAutoShape.
  4. Ajoutez du texte à IAutoShape.TextFrame.
  5. Obtenez une séquence principale d’effets.
  6. Ajoutez un effet d’animation à IAutoShape.
  7. Définissez la propriété TextAnimation.BuildType avec la valeur de l'énumération BuildType.
  8. Écrivez la présentation sur le disque en tant que fichier PPTX.

Ce code C# montre comment appliquer l’effet Fade à AutoShape et définir l’animation du texte sur la valeur Par 1er niveaux de paragraphes :

// Instantiates a presentation class that represents a presentation file.
using (Presentation pres = new Presentation())
{
    ISlide sld = pres.Slides[0];
    
    // Adds new AutoShape with text
    IAutoShape autoShape = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 100);

    ITextFrame textFrame = autoShape.TextFrame;
    textFrame.Text = "Premier paragraphe \nDeuxième paragraphe \n Troisième paragraphe";

    // Gets the main sequence of the slide.
    ISequence sequence = sld.Timeline.MainSequence;

    // Adds Fade animation effect to shape
    IEffect effect = sequence.AddEffect(autoShape, EffectType.Fade, EffectSubtype.None, EffectTriggerType.OnClick);

    // Animates shape text by 1st level paragraphs
    effect.TextAnimation.BuildType = BuildType.ByLevelParagraphs1;

    // Save the PPTX file to disk
    pres.Save(path + "AnimTextBox_out.pptx", SaveFormat.Pptx);
}

Appliquer une animation à PictureFrame

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’un diapositive via son index.
  3. Ajoutez ou obtenez un PictureFrame sur le diapositive.
  4. Obtenez la séquence principale d’effets.
  5. Ajoutez un effet d’animation à PictureFrame.
  6. Écrivez la présentation sur le disque en tant que fichier PPTX.

Ce code C# montre comment appliquer l’effet Fly à un cadre d’image :

// Instantiates a presentation class that represents a presentation file.
using (Presentation pres = new Presentation())
{
    // Load Image to be added in presentaiton image collection
    IImage image = Images.FromFile("aspose-logo.jpg");
    IPPImage ppImage = pres.Images.AddImage(image);
    image.Dispose();

    // Adds picture frame to slide
    IPictureFrame picFrame = pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 100, 100, ppImage);

    // Gets the main sequence of the slide.
    ISequence sequence = pres.Slides[0].Timeline.MainSequence;

    // Adds Fly from Left animation effect to picture frame
    IEffect effect = sequence.AddEffect(picFrame, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick);

    // Save the PPTX file to disk
    pres.Save("AnimImage_out.pptx", SaveFormat.Pptx);
}

Appliquer une animation à Shape

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’un diapositive via son index.
  3. Ajoutez un rectangle IAutoShape.
  4. Ajoutez un Bevel IAutoShape (lorsque cet objet est cliqué, l’animation se joue).
  5. Créez une séquence d’effets sur la forme biseautée.
  6. Créez un UserPath personnalisé.
  7. Ajoutez des commandes pour se déplacer vers le UserPath.
  8. Écrivez la présentation sur le disque en tant que fichier PPTX.

Ce code C# montre comment appliquer l’effet PathFootball (chemin football) à une forme :

// Instantiates a Presentation class that represents a presentation file.
using (Presentation pres = new Presentation())
{
    ISlide sld = pres.Slides[0];

    // Creates PathFootball effect for existing shape from scratch.
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 150, 250, 25);

    ashp.AddTextFrame("Texte animé");

    // Adds the PathFootBall animation effect.
    pres.Slides[0].Timeline.MainSequence.AddEffect(ashp, EffectType.PathFootball,
                           EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // Creates some kind of "button".
    IShape shapeTrigger = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Bevel, 10, 10, 20, 20);

    // Creates a sequence of effects for the button.
    ISequence seqInter = pres.Slides[0].Timeline.InteractiveSequences.Add(shapeTrigger);

    // Creates a custom user path. Our object will be moved only after the button is clicked.
    IEffect fxUserPath = seqInter.AddEffect(ashp, EffectType.PathUser, EffectSubtype.None, EffectTriggerType.OnClick);

    // Adds commands for moving since created path is empty.
    IMotionEffect motionBhv = ((IMotionEffect)fxUserPath.Behaviors[0]);

    PointF[] pts = new PointF[1];
    pts[0] = new PointF(0.076f, 0.59f);
    motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, true);
    pts[0] = new PointF(-0.076f, -0.59f);
    motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, false);
    motionBhv.Path.Add(MotionCommandPathType.End, null, MotionPathPointsType.Auto, false);

    // Writes the PPTX file to disk
    pres.Save("AnimExample_out.pptx", SaveFormat.Pptx);
}

Obtenir les effets d’animation appliqués à une forme

Vous pouvez décider de découvrir tous les effets d’animation appliqués à une seule forme.

Ce code C# montre comment obtenir tous les effets appliqués à une forme spécifique :

// Instantiates a presentation class that represents a presentation file.
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
    ISlide firstSlide = pres.Slides[0];

    // Gets the main sequence of the slide.
    ISequence sequence = firstSlide.Timeline.MainSequence;

    // Gets the first shape on slide.
    IShape shape = firstSlide.Shapes[0];

    // Gets all animation effects applied to the shape.
    IEffect[] shapeEffects = sequence.GetEffectsByShape(shape);

    if (shapeEffects.Length > 0)
        Console.WriteLine("La forme " + shape.Name + " a " + shapeEffects.Length + " effets d'animation.");
}

Changer les propriétés de timing des effets d’animation

Aspose.Slides pour .NET vous permet de changer les propriétés de timing d’un effet d’animation.

Voici le panneau de Timing de l’animation et le menu étendu dans Microsoft PowerPoint :

example1_image

Voici les correspondances entre les Timing de PowerPoint et les propriétés Effect.Timing :

Voici comment vous changez les propriétés de Timing des effets :

  1. Appliquez ou obtenez l’effet d’animation.
  2. Définissez de nouvelles valeurs pour les propriétés Effect.Timing dont vous avez besoin.
  3. Enregistrez le fichier PPTX modifié.

Ce code C# illustre l’opération :

// Instantiates a presentation class that represents a presentation file.
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
    // Gets the main sequence of the slide.
    ISequence sequence = pres.Slides[0].Timeline.MainSequence;

    // Gets the first effect of main sequence.
    IEffect effect = sequence[0];

    // Changes effect TriggerType to start on click
    effect.Timing.TriggerType = EffectTriggerType.OnClick;

    // Changes effect Duration
    effect.Timing.Duration = 3f;

    // Changes effect TriggerDelayTime
    effect.Timing.TriggerDelayTime = 0.5f;

    // If the effect Repeat value is "none"
    if (effect.Timing.RepeatCount == 1f)
    {
        // Changes effect Repeat to "Until Next Click"
        effect.Timing.RepeatUntilNextClick = true;
    }
    else
    {
        // Changes effect Repeat to "Until End of Slide"
        effect.Timing.RepeatUntilEndSlide = true;
    }

    // Turns the effect Rewind on
        effect.Timing.Rewind = true;
    
    // Saves the PPTX file to disk
    pres.Save("AnimExample_changed.pptx", SaveFormat.Pptx);
}

Son des effets d’animation

Aspose.Slides fournit ces propriétés pour vous permettre de travailler avec des sons dans les effets d’animation :

Ajouter un son d’effet d’animation

Ce code C# montre comment ajouter un son d’effet d’animation et l’arrêter lorsque l’effet suivant commence :

using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
	// Adds audio to presentation audio collection
	IAudio effectSound = pres.Audios.AddAudio(File.ReadAllBytes("sampleaudio.wav"));

	ISlide firstSlide = pres.Slides[0];

	// Gets the main sequence of the slide.
	ISequence sequence = firstSlide.Timeline.MainSequence;

	// Gets the first effect of the main sequence
	IEffect firstEffect = sequence[0];

	// Сhecks the effect for "No Sound"
	if (!firstEffect.StopPreviousSound && firstEffect.Sound == null)
	{
		// Adds sound for the first effect
		firstEffect.Sound = effectSound;
	}

	// Gets the first interactive sequence of the slide.
	ISequence interactiveSequence = firstSlide.Timeline.InteractiveSequences[0];

	// Sets the effect "Stop previous sound" flag
	interactiveSequence[0].StopPreviousSound = true;

	// Writes the PPTX file to disk
	pres.Save("AnimExample_Sound_out.pptx", SaveFormat.Pptx);
}

Extraire le son des effets d’animation

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’un diapositive via son index.
  3. Obtenez la séquence principale d’effets.
  4. Extraire le Son intégré à chaque effet d’animation.

Ce code C# montre comment extraire le son embarqué dans un effet d’animation :

// Instantiates a presentation class that represents a presentation file.
using (Presentation presentation = new Presentation("EffectSound.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // Gets the main sequence of the slide.
    ISequence sequence = slide.Timeline.MainSequence;

    foreach (IEffect effect in sequence)
    {
        if (effect.Sound == null)
            continue;

        // Extracts the effect sound in byte array
        byte[] audio = effect.Sound.BinaryData;
    }
}

Après l’animation

Aspose.Slides pour .NET vous permet de changer la propriété Après animation d’un effet d’animation.

Voici le panneau et le menu étendu des effets d’animation dans Microsoft PowerPoint :

example1_image

La liste déroulante Après animation de PowerPoint correspond à ces propriétés :

Ce code C# montre comment changer un effet après l’animation :

// Instantiates a presentation class that represents a presentation file
using (Presentation pres = new Presentation("AnimImage_out.pptx"))
{
    ISlide firstSlide = pres.Slides[0];

    // Gets the first effect of the main sequence
    IEffect firstEffect = firstSlide.Timeline.MainSequence[0];

    // Changes the after animation type to Color
    firstEffect.AfterAnimationType = AfterAnimationType.Color;

    // Sets the after animation dim color
    firstEffect.AfterAnimationColor.Color = Color.AliceBlue;

    // Writes the PPTX file to disk
    pres.Save("AnimImage_AfterAnimation.pptx", SaveFormat.Pptx);
}

Animer le texte

Aspose.Slides fournit ces propriétés pour vous permettre de travailler avec le bloc Animer le texte d’un effet d’animation :

Voici comment vous pouvez changer les propriétés de l’effet Animer le texte :

  1. Appliquez ou obtenez l’effet d’animation.
  2. Définissez la propriété IEffect.TextAnimation.BuildType sur la valeur BuildType.AsOneObject pour désactiver le mode d’animation Par paragraphes.
  3. Définissez de nouvelles valeurs pour les propriétés IEffect.AnimateTextType et IEffect.DelayBetweenTextParts.
  4. Enregistrez le fichier PPTX modifié.

Ce code C# illustre l’opération :

// Instantiates a presentation class that represents a presentation file.
using (Presentation pres = new Presentation("AnimTextBox_out.pptx"))
{
    ISlide firstSlide = pres.Slides[0];

    // Gets the first effect of the main sequence
    IEffect firstEffect = firstSlide.Timeline.MainSequence[0];

    // Changes the effect Text animation type to "As One Object"
    firstEffect.TextAnimation.BuildType = BuildType.AsOneObject;

    // Changes the effect Animate text type to "By word"
    firstEffect.AnimateTextType = AnimateTextType.ByWord;

    // Sets the delay between words to 20% of effect duration
    firstEffect.DelayBetweenTextParts = 20f;

    // Writes the PPTX file to disk
    pres.Save("AnimTextBox_AnimateText.pptx", SaveFormat.Pptx);
}