Erstellen von Miniaturansichten von Präsentationsformen in .NET

Einführung

Aspose.Slides for .NET wird verwendet, um Präsentationsdateien zu erstellen, bei denen jede Seite eine Folie ist. Diese Folien können angezeigt werden, indem die Präsentationsdateien mit Microsoft PowerPoint geöffnet werden. Manchmal müssen Entwickler jedoch die Bilder der Formen separat in einem Bildbetrachter ansehen. In solchen Fällen hilft Aspose.Slides for .NET Ihnen, Miniaturbilder der Folienformen zu erzeugen. Die Verwendung dieses Features wird in diesem Artikel beschrieben.
Dieser Artikel erklärt, wie Folienminiaturbilder auf verschiedene Weise erzeugt werden können:

  • Erzeugen eines Formen‑Miniaturbildes innerhalb einer Folie.
  • Erzeugen eines Formen‑Miniaturbildes für eine Folienform mit benutzerdefinierten Abmessungen.
  • Erzeugen eines Formen‑Miniaturbildes innerhalb der Begrenzungen des Erscheinungsbildes einer Form.

Ein Miniaturbild einer Form aus einer Folie erzeugen

Um mit Aspose.Slides for .NET ein Miniaturbild einer Form aus einer beliebigen Folie zu erzeugen:

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Holen Sie die Referenz einer beliebigen Folie über deren ID oder Index.
  3. erhalten Sie das Miniaturbild der Form der referenzierten Folie in Standard‑Skalierung.
  4. Speichern Sie das Miniaturbild in einem gewünschten Bildformat.

Das folgende Beispiel erzeugt ein Formen‑Miniaturbild.

using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
    IShape shape = presentation.Slides[0].Shapes[0];
    using (IImage image = shape.GetImage())
    {
        image.Save("Shape_thumbnail_out.png", ImageFormat.Png);
    }
}

Ein Miniaturbild mit benutzerdefiniertem Skalierungsfaktor erzeugen

Um das Miniaturbild einer beliebigen Folienform mit einem benutzerdefinierten Skalierungsfaktor zu erzeugen:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Holen Sie die Referenz einer beliebigen Folie über deren ID oder Index.
  3. erhalten Sie das Miniaturbild der referenzierten Folie mit Form‑Begrenzungen.
  4. Speichern Sie das Miniaturbild in einem gewünschten Bildformat.

Das folgende Beispiel erzeugt ein Miniaturbild mit einem benutzerdefinierten Skalierungsfaktor.

ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Shape;
float scale = 1; // Skalierung entlang X- und Y-Achsen.

using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
    IShape shape = presentation.Slides[0].Shapes[0];
    using (IImage image = shape.GetImage(bounds, scale, scale))
    {
        image.Save("Scaling Factor Thumbnail_out.png", ImageFormat.Png);
    }
}

Ein Miniaturbild einer Form basierend auf Begrenzungen des Erscheinungsbildes erstellen

Diese Methode ermöglicht es Entwicklern, ein Miniaturbild innerhalb der Begrenzungen des Erscheinungsbildes einer Form zu erzeugen. Alle Form‑Effekte werden berücksichtigt. Das erzeugte Miniaturbild ist durch die Folienbegrenzungen eingeschränkt. Um ein Miniaturbild einer beliebigen Folienform in den Begrenzungen ihres Erscheinungsbildes zu erzeugen, verwenden Sie den folgenden Beispielcode:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Holen Sie die Referenz einer beliebigen Folie über deren ID oder Index.
  3. erhalten Sie das Miniaturbild der referenzierten Folie mit Form‑Begrenzungen als Erscheinungsbild.
  4. Speichern Sie das Miniaturbild in einem gewünschten Bildformat.

Das folgende Beispiel erzeugt ein Miniaturbild basierend auf den Begrenzungen des Erscheinungsbildes.

ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Appearance;
float scale = 1; // Skalierung entlang X- und Y-Achsen.

using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
    IShape shape = presentation.Slides[0].Shapes[0];
    using (IImage image = shape.GetImage(bounds, scale, scale))
    {
        image.Save("Shape_thumbnail_Bound_Shape_out.png", ImageFormat.Png);
    }
}

Die tatsächlichen visuellen Begrenzungen einer Form ermitteln

Die Rahmen­eigenschaften von IShape – seine X, Y, Width und Height‑Eigenschaften – beschreiben das im Präsentationsmodell gespeicherte Rechteck. Der tatsächlich gerenderte Inhalt kann über diesen Rahmen hinausgehen oder ein anders ausgerichtetes Rechteck einnehmen. Drehung, Konturen, Pfeilspitzen, Textlayout und -überlauf, erzeugte SmartArt‑Geometrie und andere Rendering‑Effekte können den belegten Bereich verändern.

Verwenden Sie GetVisualBounds, um diesen belegten Bereich zu berechnen, ohne ein Bild zu erzeugen. Die Methode gibt ein RectangleF in Folienkoordinaten zurück. Das zurückgegebene Rechteck wird nicht auf die Folie zugeschnitten, sodass seine Koordinaten negativ sein können, wenn der Inhalt über den Folienursprung hinausreicht.

GetVisualBounds ist derzeit nicht im IShape-Interface deklariert. Behalten Sie daher die aus der Folien‑Form‑Sammlung erhaltene Form als Interface‑Wert und casten Sie sie nur beim Aufruf der Methode.

Das folgende Beispiel holt und vergleicht die Rahmen‑ und visuellen Begrenzungen:

using var presentation = new Presentation("example.pptx");

var slide = presentation.Slides[0];
IShape shape = slide.Shapes[0];

var visualBounds = ((Shape)shape).GetVisualBounds();
var frameBounds = new RectangleF(shape.X, shape.Y, shape.Width, shape.Height);

Console.WriteLine($"Frame bounds: {frameBounds}");
Console.WriteLine($"Visual bounds: {visualBounds}");

Das gleiche RectangleF kann verwendet werden, um benachbarte Formen an deren Left, Right, Top oder Bottom‑Kante auszurichten; ausreichend Platz in einem erzeugten Layout zu reservieren; oder Inhalte außerhalb eines erlaubten Bereichs zu erkennen. Visuelle Begrenzungen sind besonders nützlich für SmartArt, Textfelder, Pfeile, Bilder, gedrehte Formen und Gruppierungen, bei denen der gespeicherte Rahmen nicht das vollständige gerenderte Ergebnis repräsentiert.

Verwenden Sie GetVisualBounds, wenn Sie Koordinaten für Layout oder Validierung benötigen und kein Bitmap benötigen. Verwenden Sie IShape.GetImage, wenn Sie die Form rendern müssen. Mit ShapeThumbnailBounds bestimmt ShapeThumbnailBounds.Shape die Bildgröße anhand der Form‑Begrenzungen, einschließlich Kontureinstellungen, während ShapeThumbnailBounds.Appearance die Größe anhand des Erscheinungsbildes der Form bestimmt und das Ergebnis auf die Folienbegrenzungen beschränkt. Im Gegensatz dazu gibt GetVisualBounds nur das berechnete Rechteck zurück und schneidet es nicht an die Folie zu.

FAQ

Welche Bildformate können beim Speichern von Formen‑Miniaturbildern verwendet werden?
PNG, JPEG, BMP, GIF, TIFF, und weitere. Formen können auch als Vektor‑SVG exportiert werden, indem der Inhalt der Form als SVG gespeichert wird.

Was ist der Unterschied zwischen Shape‑ und Appearance‑Grenzen beim Rendern eines Miniaturbildes?
Shape verwendet die Geometrie der Form; Appearance berücksichtigt visual effects (Schatten, Leuchten usw.).

Was passiert, wenn eine Form als verborgen markiert ist? Wird sie trotzdem als Miniaturbild gerendert?
Eine verborgene Form bleibt Teil des Modells und kann gerendert werden; das Hidden‑Flag beeinflusst die Anzeige der Diashow, verhindert jedoch nicht das Erzeugen des Bildes der Form.

Werden Gruppierungen, Diagramme, SmartArt und andere komplexe Objekte unterstützt?
Ja. Jedes Objekt, das als Shape (einschließlich GroupShape, Chart, und SmartArt) dargestellt wird, kann als Miniaturbild oder als SVG gespeichert werden.

Beeinflussen systeminstallierte Schriftarten die Qualität von Miniaturbildern für Textformen?
Ja. Sie sollten die erforderlichen Schriftarten bereitstellen (oder Schriftarten‑Ersetzungen konfigurieren), um ungewollte Rückfälle und Textumfluss zu vermeiden.