Werken met afbeeldingen in presentaties — Aspose.Slides FOSS voor .NET
Aspose.Slides FOSS for .NET stelt je in staat om afbeeldingen in de gedeelde afbeeldingscollectie van een presentatie in te sluiten en ze op dia’s weer te geven met behulp van PictureFrame vormen. Afbeeldingen kunnen ook worden gebruikt als vormachtergrondvullingen via FillType.Picture.
Een afbeelding toevoegen vanuit bestand
Laad afbeeldingsbytes van de schijf en voeg ze toe aan de afbeeldingscollectie van de presentatie met prs.Images.AddImage(). Plaats vervolgens de afbeelding op een dia als een 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);De vier positionele argumenten voor AddPictureFrame() zijn: x, y, width, height in punten.
Een afbeelding toevoegen vanuit een stream
Als je afbeeldingsgegevens hebt van een stream (bijv. gedownload van een URL of gelezen uit een database), geef deze dan rechtstreeks door aan 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);Positioneren en schalen van een PictureFrame
De PictureFrame die wordt geretourneerd door AddPictureFrame() erft alle Shape geometrie‑eigenschappen en kan na creatie opnieuw worden gepositioneerd:
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);Een afbeelding gebruiken als vormvulling
Elke vorm (niet alleen PictureFrame) kan een afbeelding als achtergrondvulling gebruiken. Stel FillType = FillType.Picture in en wijs de afbeelding toe aan 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 schaalt de afbeelding zodat deze de hele vorm vult.
Meerdere afbeeldingen toevoegen over dia’s
Afbeeldingen die aan prs.Images zijn toegevoegd, worden gedeeld over alle dia’s. Hetzelfde afbeeldingobject kan op meerdere dia’s worden gebruikt zonder de gegevens te dupliceren:
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);