Arbeiten mit Bildern in Präsentationen — Aspose.Slides FOSS für .NET
Aspose.Slides FOSS for .NET ermöglicht das Einbetten von Bildern in die gemeinsam genutzte Bildsammlung einer Präsentation und deren Anzeige auf Folien mithilfe von PictureFrame‑Formen. Bilder können auch als Hintergrundfüllungen von Formen über FillType.Picture verwendet werden.
Ein Bild aus Datei hinzufügen
Laden Sie Bildbytes von der Festplatte und fügen Sie sie mit prs.Images.AddImage() zur Bildsammlung der Präsentation hinzu. Platzieren Sie dann das Bild auf einer Folie als PictureFrame:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
// Add the image to the shared collection
var imageData = File.ReadAllBytes("logo.png");
var img = prs.Images.AddImage(imageData);
// Place it on the slide as a PictureFrame
var slide = prs.Slides[0];
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 300, 200, img);
prs.Save("with-image.pptx", SaveFormat.Pptx);Die vier Positionsargumente für AddPictureFrame() sind: x, y, width, height in Punkten.
Ein Bild aus einem Stream hinzufügen
Wenn Sie Bilddaten aus einem Stream haben (z. B. von einer URL heruntergeladen oder aus einer Datenbank gelesen), übergeben Sie sie direkt an AddImage():
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = File.OpenRead("photo.jpg");
var img = prs.Images.AddImage(stream);
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 100, 80, 400, 250, img);
prs.Save("from-stream.pptx", SaveFormat.Pptx);Positionierung und Größenanpassung eines PictureFrame
Der PictureFrame, der von AddPictureFrame() zurückgegeben wird, erbt alle Shape Geometrieeigenschaften und kann nach der Erstellung neu positioniert werden:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);
var pf = prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, 100, 100, img);
// Reposition and resize after creation
pf.X = 50;
pf.Y = 100;
pf.Width = 350;
pf.Height = 250;
prs.Save("positioned.pptx", SaveFormat.Pptx);Verwendung eines Bildes als Formfüllung
Jede Form (nicht nur PictureFrame) kann ein Bild als Hintergrundfüllung verwenden. Setzen Sie FillType = FillType.Picture und weisen Sie das Bild PictureFillFormat.Picture.Image zu:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var imageData = File.ReadAllBytes("background.png");
var img = prs.Images.AddImage(imageData);
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, 50, 50, 400, 250);
shape.FillFormat.FillType = FillType.Picture;
shape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
shape.FillFormat.PictureFillFormat.Picture.Image = img;
prs.Save("picture-fill.pptx", SaveFormat.Pptx);PictureFillMode.Stretch skaliert das Bild, um die gesamte Form auszufüllen.
Mehrere Bilder über Folien hinweg hinzufügen
Bilder, die zu prs.Images hinzugefügt werden, werden über alle Folien hinweg gemeinsam genutzt. Das gleiche Bildobjekt kann auf mehreren Folien verwendet werden, ohne die Daten zu duplizieren:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var logoData = File.ReadAllBytes("logo.png");
var logo = prs.Images.AddImage(logoData);
// Add the same image to the first slide
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 600, 10, 100, 40, logo);
prs.Save("shared-image.pptx", SaveFormat.Pptx);