Cum să adăugați imagini în diapozitive PowerPoint în .NET

Cum să adăugați imagini în diapozitive PowerPoint în .NET

Imaginile în Aspose.Slides FOSS sunt încorporate ca cadre de imagine, forme care conțin o imagine și pot fi poziționate, redimensionate și stilizate ca orice altă formă. Datele imaginii sunt stocate o singură dată în colecția prs.Images și sunt referențiate de cadru.


Precondiții

dotnet add package Aspose.Slides.Foss

Adăugați o imagine dintr-un fișier

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);

Semnătura AddPictureFrame:

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

Toate dimensiunile sunt în puncte (1 punct = 1/72 inch). Pentru un diapozitiv standard de 10 x 7,5 inch spațiul de coordonate este de 720 x 540 de puncte.


Adaugă o imagine dintr-un flux

Dacă aveți deja imaginea ca flux (de exemplu, descărcată de la un URL sau citită dintr-o bază de date):

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);

Controlul modului de umplere

PictureFormat pe un PictureFrame controlează modul în care imaginea umple limitele cadrului:

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);
PictureFillModeComportament
StretchScalează imaginea pentru a umple cadrul, ignorând raportul de aspect
TileRepetă imaginea ca un model în mozaic

Adăugați mai multe imagini pe diapozitive diferite

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);

Numără imaginile într-o prezentare existentă

using Aspose.Slides.Foss;

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

Colecția prs.Images este partajată pe toate diapozitivele: aceiași octeți de imagine sunt stocați o singură dată, chiar dacă cadrul imaginii apare pe mai multe diapozitive.


Vezi și

 Română