Rendu des formes sur la diapositive en tant qu'images

Cela couvre deux fonctions principales :

  • Extraction d’images à partir d’une forme vers un fichier.
  • Extraction de formes en tant que fichier image.

Extraction d’images à partir d’une forme vers un fichier

Des images sont ajoutées en arrière-plan des diapositives et dans les formes. Parfois, il est nécessaire d’extraire les images ajoutées dans les formes de la présentation.

Dans Aspose.Slides pour .NET, des images peuvent être ajoutées à une forme de diapositive et à l’arrière-plan de la diapositive. Les images sont ajoutées dans ImageCollectionEx de la présentation. Dans cet exemple, nous allons parcourir chaque forme dans chaque diapositive de la présentation et voir s’il y a une image ajoutée dans la forme de la diapositive. Si une image est trouvée pour une forme, nous allons l’extraire et l’enregistrer dans un fichier. Le snippet de code suivant servira à cet effet.


 //Accéder à la présentation

PresentationEx pres = new PresentationEx("RenderImageFromShape.pptx");

ImageEx img = null;

int slideIndex = 0;

String ImageType = "";

bool ifImageFound = false;

for (int i = 0; i < pres.Slides.Count; i++)

{

	slideIndex++;

	//Accéder à la première diapositive

	SlideEx sl = pres.Slides[i];

	System.Drawing.Imaging.ImageFormat Format = System.Drawing.Imaging.ImageFormat.Jpeg;

	for (int j = 0; j < sl.Shapes.Count; j++)

	{

		// Accéder à la forme avec image

		ShapeEx sh = sl.Shapes[j];

		if (sh is AutoShapeEx)

		{

			AutoShapeEx ashp = (AutoShapeEx)sh;

			if (ashp.FillFormat.FillType == FillTypeEx.Picture)

			{

				img = ashp.FillFormat.PictureFillFormat.Picture.Image;

				ImageType = img.ContentType;

				ImageType = ImageType.Remove(0, ImageType.IndexOf("/") + 1);

				ifImageFound = true;

			}

		}

		else if (sh is PictureFrameEx)

		{

			PictureFrameEx pf = (PictureFrameEx)sh;

			if (pf.FillFormat.FillType == FillTypeEx.Picture)

			{

				img = pf.PictureFormat.Picture.Image;

				ImageType = img.ContentType;

				ImageType = ImageType.Remove(0, ImageType.IndexOf("/") + 1);

				ifImageFound = true;

			}

		}


		//

		//Définir le format d'image souhaité

		if (ifImageFound)

		{

			switch (ImageType)

			{

				case "jpeg":

					Format = System.Drawing.Imaging.ImageFormat.Jpeg;

					break;

				case "emf":

					Format = System.Drawing.Imaging.ImageFormat.Emf;

					break;

				case "bmp":

					Format = System.Drawing.Imaging.ImageFormat.Bmp;

					break;

				case "png":

					Format = System.Drawing.Imaging.ImageFormat.Png;

					break;

				case "wmf":

					Format = System.Drawing.Imaging.ImageFormat.Wmf;

					break;

				case "gif":

					Format = System.Drawing.Imaging.ImageFormat.Gif;

					break;

			}

			//

			img.Image.Save(path+"ResultedImage"+"." + ImageType, Format);

		}

		ifImageFound = false;

Télécharger le code d’exemple

Extraction de formes en tant que fichier image

//Instancier l'objet Présentation qui représente un fichier PPT
Presentation pres = new Presentation("RenderShapeAsImage.ppt");

//Accéder à une diapositive en utilisant sa position
ISlide slide = pres.Slides[2];

for (int i = 0; i < slide.Shapes.Count; i++)
{
    IShape shape = slide.Shapes[i];

    //Obtenir l'image miniature de la forme
    using (IImage image = shape.GetImage(ShapeThumbnailBounds.Shape, 1.0f, 1.0f))
    {
        //Enregistrer l'image miniature au format gif
        image.Save(i + ".gif", ImageFormat.Gif);
    }
}

Remarque : L’extraction de formes est actuellement prise en charge dans le fichier .ppt.

Télécharger le code d’exemple