PowerPoint Slaytlarına .NET'te Görüntü Ekleme

PowerPoint Slaytlarına .NET'te Görüntü Ekleme

Aspose.Slides FOSS’taki görüntüler picture frames olarak gömülür, bir görüntüyü tutan ve diğer şekiller gibi konumlandırılabilen, yeniden boyutlandırılabilen ve biçimlendirilebilen şekillerdir. Görüntü verileri prs.Images koleksiyonunda bir kez depolanır ve çerçeve tarafından referans alınır.


Önkoşullar

dotnet add package Aspose.Slides.Foss

Bir Dosyadan Görüntü Ekle

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 imzası:

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

Tüm boyutlar points (1 point = 1/72 inç) cinsindendir. Standart bir 10 × 7,5 inç slayt için koordinat alanı 720 × 540 points’tir.


Bir Akıştan Görüntü Ekle

Eğer görüntüyü zaten bir akış olarak elinizde bulunduruyorsanız (ör. bir URL’den indirilmiş ya da bir veritabanından okunmuş):

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

Dolgu Modunu Kontrol Et

PictureFrame üzerindeki PictureFormat, görüntünün çerçeve sınırlarını nasıl doldurduğunu kontrol eder:

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);
PictureFillModeDavranış
StretchGörüntüyü çerçeveyi dolduracak şekilde ölçeklendir, en boy oranını göz ardı et
TileGörüntüyü döşeme deseni olarak tekrarla

Farklı Slaytlara Birden Çok Görüntü Ekle

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

Mevcut Bir Sunumda Görüntüleri Sayma

using Aspose.Slides.Foss;

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

prs.Images koleksiyonu tüm slaytlar arasında paylaşılır: aynı görüntü baytları bir kez depolanır, hatta resim çerçevesi birden fazla slaytta görünsede.


Ayrıca bakınız

 Türkçe