Formen auf Folien als Bilder rendern

Dies behandelt zwei Hauptfunktionen:

  • Bild aus Form in Datei extrahieren.
  • Formen als Bilddatei extrahieren.

Bild aus Form in Datei extrahieren

Bilder werden im Folienhintergrund und in Formen hinzugefügt. Manchmal ist es erforderlich, die in den Präsentationsformen hinzugefügten Bilder zu extrahieren.

In Aspose.Slides für .NET können Bilder in Folienformen und im Folienhintergrund hinzugefügt werden. Die Bilder werden in ImageCollectionEx der Präsentation hinzugefügt. In diesem Beispiel werden wir jede Form in jeder Folie der Präsentation durchlaufen und prüfen, ob es eine Bild in der Folienform gibt. Wenn das Bild für eine Form gefunden wird, werden wir es extrahieren und in eine Datei speichern. Der folgende Codeausschnitt dient diesem Zweck.


 //Zugriff auf die 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++;

	//Zugriff auf die erste Folie

	SlideEx sl = pres.Slides[i];

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

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

	{

		// Zugriff auf die Form mit Bild

		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;

			}

		}


		//

		//Festlegen des gewünschten Bildformats

		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;

Beispielcode herunterladen

Formen als Bilddatei extrahieren

//Instanziieren des Präsentationsobjekts, das eine PPT-Datei darstellt
Presentation pres = new Presentation("RenderShapeAsImage.ppt");

//Zugriff auf eine Folie anhand ihrer Folienposition
ISlide slide = pres.Slides[2];

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

    //Erhalten des Miniaturbilds der Form
    using (IImage image = shape.GetImage(ShapeThumbnailBounds.Shape, 1.0f, 1.0f))
    {
        //Speichern des Miniaturbilds im gif-Format
        image.Save(i + ".gif", ImageFormat.Gif);
    }
}

*Hinweis:*Die Extraktion von Formen wird derzeit in .ppt-Dateien unterstützt.

Beispielcode herunterladen