Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant .NET

Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant .NET

Aspose.Slides FOSS paveikslai yra įterpiami kaip paveikslų rėmai, formos, kurios talpina paveikslą ir gali būti pozicionuojamos, keičiamas dydis ir stilizuojamos kaip bet kuri kita forma. Paveikslo duomenys saugomi vieną kartą prs.Images kolekcijoje ir yra nuorodojami rėmo.


Būtinosios sąlygos

dotnet add package Aspose.Slides.Foss

Pridėti paveikslėlį iš failo

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

AddPictureFrame parašas:

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

Visi matmenys yra taškai (1 taškas = 1/72 colio). Standartinei 10 x 7.5 colių skaidrei koordinačių erdvė yra 720 x 540 taškų.


Pridėti paveikslėlį iš srauto

Jei jau turite paveikslėlį kaip srautą (pvz., atsisiųstą iš URL arba perskaitytą iš duomenų bazės):

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

Valdyti užpildymo režimą

PictureFormat ant PictureFrame valdo, kaip vaizdas užpildo kadro ribas:

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);
PictureFillModeElgsena
StretchMastelis paveikslą, kad užpildytų rėmelį, nepaisant kraštinių santykio
TileKartoti paveikslą kaip plytelės šabloną

Pridėti kelias nuotraukas į skirtingas skaidres

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

Suskaičiuoti paveikslėlius esamo pristatyme

using Aspose.Slides.Foss;

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

prs.Images kolekcija yra bendrinama visose skaidrėse: tas pats paveikslėlio baitų rinkinys saugomas vieną kartą, net jei paveikslėlio rėmelis pasirodo keliuose skaidrėse.


Žr. taip pat

 Lietuvių