Rendern von Formen auf Folien als Bilder
Contents
[
Hide
]
Dies deckt zwei Hauptfunktionen ab:
- Bild aus 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 traversieren wir jede Form in jeder Folie der Präsentation und prüfen, ob ein Bild in der Folienform hinzugefügt wurde. Wird ein Bild für eine Form gefunden, extrahieren wir es und speichern es in einer Datei. Das folgende Code‑Snippet erfüllt diesen 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;
Download Sample Code
Extract Shapes as Image Files
//Instanziieren des Presentation-Objekts, das eine PPT-Datei darstellt
Presentation pres = new Presentation("RenderShapeAsImage.ppt");
//Zugriff auf eine Folie anhand ihrer Position
ISlide slide = pres.Slides[2];
for (int i = 0; i < slide.Shapes.Count; i++)
{
IShape shape = slide.Shapes[i];
//Abrufen des Thumbnail-Bildes der Form
using (IImage image = shape.GetImage(ShapeThumbnailBounds.Shape, 1.0f, 1.0f))
{
//Speichern des Thumbnail-Bildes im GIF-Format
image.Save(i + ".gif", ImageFormat.Gif);
}
}
*Hinweis:*Die Extraktion von Formen wird derzeit in .ppt‑Dateien unterstützt.