Hoe afbeeldingen toe te voegen aan PowerPoint-dia's in .NET

Hoe afbeeldingen toe te voegen aan PowerPoint-dia's in .NET

Afbeeldingen in Aspose.Slides FOSS worden ingebed als picture frames, vormen die een afbeelding bevatten en kunnen worden gepositioneerd, van grootte veranderd en gestyled zoals elke andere vorm. De afbeeldingsgegevens worden één keer opgeslagen in de prs.Images-collectie en door het frame gerefereerd.


Vereisten

dotnet add package Aspose.Slides.Foss

Afbeelding toevoegen vanuit een bestand

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Load image into the presentation's image collection
byte[] imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);

// Add a picture frame at (x=50, y=50, width=400, height=300) in points
var frame = slide.Shapes.AddPictureFrame(
    ShapeType.Rectangle,
    50, 50, 400, 300,
    img
);

prs.Save("with-image.pptx", SaveFormat.Pptx);

De AddPictureFrame handtekening:

AddPictureFrame(shapeType, x, y, width, height, image) -> PictureFrame

Alle afmetingen zijn in points (1 point = 1/72 inch). Voor een standaard dia van 10 × 7,5 inch is de coördinatenruimte 720 × 540 points.


Afbeelding toevoegen vanuit een stream

Als je de afbeelding al als een stream hebt (bijv. gedownload van een URL of gelezen uit een database):

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
using var stream = File.OpenRead("logo.png");
var img = prs.Images.AddImage(stream);

prs.Slides[0].Shapes.AddPictureFrame(
    ShapeType.Rectangle,
    200, 100, 300, 200,
    img
);
prs.Save("logo-slide.pptx", SaveFormat.Pptx);

Regel de vulmodus

De PictureFormat op een PictureFrame bepaalt hoe de afbeelding de framegrenzen vult:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
byte[] texData = File.ReadAllBytes("texture.png");
var img = prs.Images.AddImage(texData);
var frame = prs.Slides[0].Shapes.AddPictureFrame(
    ShapeType.Rectangle, 50, 50, 600, 350, img
);

// STRETCH: scale image to fill the frame exactly (default)
frame.PictureFormat.PictureFillMode = PictureFillMode.Stretch;

// TILE: repeat the image in a grid pattern
// frame.PictureFormat.PictureFillMode = PictureFillMode.Tile;

prs.Save("filled.pptx", SaveFormat.Pptx);
PictureFillModeGedrag
StretchScha al de afbeelding om het kader te vullen, negeer de beeldverhouding
TileHerhaal de afbeelding als een tegelpatroon

Meerdere afbeeldingen toevoegen aan verschillende dia’s

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

string[] imageFiles = { "slide1.jpg", "slide2.jpg", "slide3.jpg" };

using var prs = new Presentation();
var layout = prs.Slides[0].LayoutSlide;

// Ensure enough slides exist
while (prs.Slides.Count < imageFiles.Length)
    prs.Slides.AddEmptySlide(layout);

for (int i = 0; i < imageFiles.Length; i++)
{
    if (!File.Exists(imageFiles[i])) continue;
    var img = prs.Images.AddImage(File.ReadAllBytes(imageFiles[i]));
    prs.Slides[i].Shapes.AddPictureFrame(
        ShapeType.Rectangle, 0, 0, 720, 540, img
    );
}

prs.Save("multi-image.pptx", SaveFormat.Pptx);

Aantal afbeeldingen in een bestaande presentatie

using Aspose.Slides.Foss;

using var prs = new Presentation("with-image.pptx");
Console.WriteLine($"Presentation contains {prs.Images.Count} image(s)");

De prs.Images-collectie wordt gedeeld over alle dia’s: dezelfde afbeeldingsbytes worden één keer opgeslagen, zelfs als het afbeeldingskader op meerdere dia’s verschijnt.


Zie ook

 Nederlands