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.FossTambahkan 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) -> PictureFrameSemua 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);PictureFillMode | Perilaku |
|---|---|
Stretch | Skala gambar untuk mengisi bingkai, mengabaikan rasio aspek |
Tile | Ulangi 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.