Formen auf Folie als Bilder rendern

Dies deckt zwei Hauptfunktionen ab:

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

Ein Bild aus einer Form in eine 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 for .NET können Bilder zu Folienformen und zum Folienhintergrund hinzugefügt werden. Die Bilder werden in ImageCollectionEx der Präsentation hinzugefügt. In diesem Beispiel durchlaufen wir jede Form in jeder Folie der Präsentation und prüfen, ob ein Bild in der Folienform hinzugefügt wurde. Wenn ein Bild für eine Form gefunden wird, extrahieren wir es und speichern es in einer Datei. Das folgende Code‑Snippet erfüllt diesen Zweck.

 //Accessing the presentation
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++;
	//Accessing the first slide
	SlideEx sl = pres.Slides[i];
	System.Drawing.Imaging.ImageFormat Format = System.Drawing.Imaging.ImageFormat.Jpeg;
	for (int j = 0; j < sl.Shapes.Count; j++)
	{
		// Accessing the shape with picture
		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;
			}
		}
		//
		//Setting the desired picture format
		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;

Download Sample Code

Extract Shapes as Image Files

//Instantiate the Presentation object that represents a PPT file
Presentation pres = new Presentation("RenderShapeAsImage.ppt");

//Accessing a slide using its slide position
ISlide slide = pres.Slides[2];

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

    //Getting the thumbnail image of the shape
    using (IImage image = shape.GetImage(ShapeThumbnailBounds.Shape, 1.0f, 1.0f))
    {
        //Saving the thumbnail image in gif format
        image.Save(i + ".gif", ImageFormat.Gif);
    }
}

Hinweis: Die Extraktion von Formen wird derzeit nur in .ppt‑Dateien unterstützt.

Beispielcode herunterladen