كيفية إضافة الصور إلى شرائح PowerPoint في .NET

كيفية إضافة الصور إلى شرائح PowerPoint في .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/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 مشتركة عبر جميع الشرائح: يتم تخزين بايتات الصورة نفسها مرة واحدة حتى إذا ظهر إطار الصورة في عدة شرائح.


انظر أيضًا

 العربية