Working with Images in Presentations — Aspose.Slides FOSS for .NET
Aspose.Slides FOSS for .NET pozwala osadzać obrazy w wspólnej kolekcji obrazów prezentacji i wyświetlać je na slajdach przy użyciu kształtów PictureFrame. 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 przy użyciu 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
PictureFrame zwrócony przez AddPictureFrame() dziedziczy wszystkie właściwości geometrii Shape i może być przemiesczony 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 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);