Cara Menambahkan Gambar ke Slide PowerPoint di .NET

Cara Menambahkan Gambar ke Slide PowerPoint di .NET

Gambar dalam Aspose.Slides FOSS disematkan sebagai picture frames, bentuk yang menampung gambar dan dapat diposisikan, diubah ukurannya, serta diberi gaya seperti bentuk lainnya. Data gambar disimpan satu kali dalam koleksi prs.Images dan direferensikan oleh frame.


Prasyarat

dotnet add package Aspose.Slides.Foss

Tambahkan Gambar dari File

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

Tanda tangan AddPictureFrame:

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

Semua dimensi dalam points (1 point = 1/72 inci). Untuk slide standar 10 x 7,5 inci ruang koordinatnya adalah 720 x 540 points.


Tambahkan Gambar dari Stream

Jika Anda sudah memiliki gambar sebagai stream (mis., diunduh dari URL atau dibaca dari basis 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);

Kontrol Mode Isi

PictureFormat pada PictureFrame mengontrol bagaimana gambar mengisi batas 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);
PictureFillModePerilaku
StretchSkala gambar untuk mengisi bingkai, mengabaikan rasio aspek
TileUlangi gambar sebagai pola ubin

Tambahkan Beberapa Gambar ke Slide yang Berbeda

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

Hitung Gambar dalam Presentasi yang 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 dibagikan di semua slide: byte gambar yang sama disimpan sekali bahkan jika bingkai gambar muncul di beberapa slide.


Lihat Juga

 Bahasa Indonesia