Cara Menambah Imej ke Slaid PowerPoint dalam .NET

Cara Menambah Imej ke Slaid PowerPoint dalam .NET

Imej dalam Aspose.Slides FOSS dimasukkan sebagai bingkai gambar, bentuk yang memegang imej dan boleh ditempatkan, diubah saiz, dan digayakan seperti mana-mana bentuk lain. Data imej disimpan sekali dalam koleksi prs.Images dan dirujuk oleh bingkai.


Prasyarat

dotnet add package Aspose.Slides.Foss

Tambah Imej dari Fail

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

Tandatangan AddPictureFrame:

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

Semua dimensi dalam points (1 point = 1/72 inci). Untuk slaid standard 10 x 7.5 inci ruang koordinat ialah 720 x 540 points.


Tambah Imej daripada Aliran

Jika anda sudah mempunyai imej sebagai aliran (contohnya, dimuat turun dari URL atau dibaca daripada pangkalan data):

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

Kawal Mod Isian

PictureFormat pada PictureFrame mengawal bagaimana imej mengisi sempadan bingkai:

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);
PictureFillModeKelakuan
StretchSkalakan imej untuk mengisi bingkai, mengabaikan nisbah aspek
TileUlang imej sebagai corak jubin

Tambah Pelbagai Imej ke Slaid Berbeza

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

Kira Imej dalam Pembentangan Sedia Ada

using Aspose.Slides.Foss;

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

Koleksi prs.Images dikongsi di semua slaid: bait imej yang sama disimpan sekali walaupun bingkai gambar muncul pada beberapa slaid.


Lihat Juga

 Bahasa Melayu