Praca z obrazami w prezentacjach — Aspose.Slides FOSS dla .NET
Aspose.Slides FOSS for .NET lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame kształty. Obrazy mogą być również używane jako wypełnienia tła kształtu za pomocą FillType.Picture.
Dodawanie obrazu z pliku
Wczytaj bajty obrazu z dysku i dodaj je do kolekcji obrazów prezentacji za pomocą prs.Images.AddImage(). Następnie umieść obraz na slajdzie jako 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);Cztery argumenty pozycyjne dla AddPictureFrame() to: x, y, width, height w punktach.
Dodawanie obrazu ze strumienia
Jeśli masz dane obrazu ze strumienia (np. pobrane z URL lub odczytane z bazy danych), przekaż je bezpośrednio do 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);Pozycjonowanie i zmiana rozmiaru PictureFrame
Ten PictureFrame zwrócony przez AddPictureFrame() dziedziczy wszystkie Shape właściwości geometryczne i może być przemieszczone po utworzeniu:
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);Używanie obrazu jako wypełnienia kształtu
Dowolny kształt (nie tylko PictureFrame) może używać obrazu jako wypełnienia tła. Ustaw FillType = FillType.Picture i przypisz obraz do PictureFillFormat.Picture.Image:
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 Skaluje obraz, aby wypełnić cały kształt.
Dodawanie wielu obrazów na różnych slajdach
Obrazy dodane do prs.Images są współdzielone we wszystkich slajdach. Ten sam obiekt obrazu może być używany na wielu slajdach bez duplikowania danych:
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);