چگونه تصاویر را به اسلایدهای پاورپوینت در .NET اضافه کنیم

چگونه تصاویر را به اسلایدهای پاورپوینت در .NET اضافه کنیم

تصاویر در Aspose.Slides FOSS به‌صورت قاب‌های تصویر جاسازی می‌شوند، شکل‌هایی که یک تصویر را نگه می‌دارند و می‌توانند مانند هر شکل دیگری موقعیت‌یابی، اندازه‌گیری و استایل شوند. داده‌های تصویر یک بار در مجموعه prs.Images ذخیره می‌شود و توسط قاب ارجاع داده می‌شود.


پیش‌نیازها

dotnet add package Aspose.Slides.Foss

افزودن تصویر از یک فایل

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:

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

تمام ابعاد بر حسب نقطه‌ها (1 نقطه = 1/72 اینچ). برای یک اسلاید استاندارد 10 × 7.5 اینچی، فضای مختصاتی 720 × 540 نقطه است.


افزودن تصویر از یک جریان

اگر تصویر را قبلاً به‌صورت یک جریان (مثلاً از یک URL دانلود شده یا از یک پایگاه داده خوانده شده) دارید:

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

کنترل حالت پر کردن

PictureFormat روی یک PictureFrame کنترل می‌کند که تصویر چگونه مرزهای فریم را پر می‌کند:

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رفتار
Stretchتصویر را برای پر کردن قاب مقیاس‌بندی کنید، نسبت ابعاد را نادیده بگیرید
Tileتصویر را به صورت الگوی کاشی‌ای تکرار کنید

افزودن چندین تصویر به اسلایدهای مختلف

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

شمارش تصاویر در یک ارائه موجود

using Aspose.Slides.Foss;

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

مجموعه prs.Images در تمام اسلایدها به‌اشتراک گذاشته می‌شود: بایت‌های تصویر یک‌بار ذخیره می‌شوند حتی اگر قاب تصویر در چندین اسلاید ظاهر شود.


موارد مرتبط

 فارسی