Renderizando Formas en Diapositiva como Imágenes

Esto cubre dos funciones principales:

  • Extracción de Imagen de Forma a archivo.
  • Extracción de Formas como archivo de imagen.

Extracción de Imagen de Forma a archivo

Las imágenes se agregan en el fondo de la diapositiva y en las formas. A veces, es necesario extraer las imágenes añadidas en las formas de la presentación.

En Aspose.Slides for .NET, las imágenes se pueden agregar al formato de diapositiva y al fondo de la diapositiva. Las imágenes se agregan en ImageCollectionEx de la presentación. En este ejemplo, recorreremos cada forma dentro de cada diapositiva de la presentación y veremos si hay alguna imagen agregada en la forma de la diapositiva. Si se encuentra la imagen para alguna forma, la extraeremos y la guardaremos en un archivo. El siguiente fragmento de código cumplirá con este propósito.


 //Accediendo a la presentación

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++;

	//Accediendo a la primera diapositiva

	SlideEx sl = pres.Slides[i];

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

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

	{

		// Accediendo a la forma con imagen

		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;

			}

		}


		//

		//Configurando el formato de imagen deseado

		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;

Descargar Código de Ejemplo

Extracción de Formas como archivo de imagen

//Instanciar el objeto Presentación que representa un archivo PPT
Presentation pres = new Presentation("RenderShapeAsImage.ppt");

//Accediendo a una diapositiva usando su posición en la diapositiva
ISlide slide = pres.Slides[2];

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

    //Obteniendo la imagen en miniatura de la forma
    using (IImage image = shape.GetImage(ShapeThumbnailBounds.Shape, 1.0f, 1.0f))
    {
        //Guardando la imagen en miniatura en formato gif
        image.Save(i + ".gif", ImageFormat.Gif);
    }
}

Nota: La extracción de forma se soporta actualmente en archivos .ppt.

Descargar Código de Ejemplo