نحوه افزودن تصاویر به اسلایدهای 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 نقطه = 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 در تمام اسلایدها به اشتراک گذاشته میشود: بایتهای تصویر یکبار ذخیره میشوند حتی اگر قاب تصویر در چندین اسلاید ظاهر شود.