Kā .NET vidē pievienot attēlus PowerPoint slaidiem

Kā .NET vidē pievienot attēlus PowerPoint slaidiem

Attēli Aspose.Slides FOSS tiek iegulti kā attēlu rāmji, formas, kas satur attēlu un var tikt novietotas, mainītas izmērā un stilizētas kā jebkura cita forma. Attēlu dati tiek saglabāti vienreiz prs.Images kolekcijā un tiek atsaukti uz rāmi.


Priekšnosacījumi

dotnet add package Aspose.Slides.Foss

Pievienot attēlu no faila

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 paraksts:

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

Visi izmēri ir punktos (1 punkts = 1/72 collas). Standarta 10 x 7,5 collas slaidam koordinātu telpa ir 720 x 540 punkti.


Pievienot attēlu no plūsmas

Ja jums jau ir attēls kā straume (piemēram, lejupielādēts no URL vai nolasīts no datubāzes):

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

Kontrolēt aizpildīšanas režīmu

PictureFormat uz PictureFrame kontrolē, kā attēls aizpilda kadra robežas:

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);
PictureFillModeUzvedība
StretchMērogot attēlu, lai aizpildītu rāmi, ignorējot proporcijas
TileAtkārtot attēlu kā flīzētu rakstu

Pievienot vairākus attēlus dažādos slaidos

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

Skaitīt attēlus esošā prezentācijā

using Aspose.Slides.Foss;

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

prs.Images kolekcija tiek koplietota visos slaidos: tas pats attēla baiti tiek saglabāti vienreiz, pat ja attēla rāmis parādās vairākos slaidos.


Skatīt arī

 Latviešu