Работа с изображениями в презентациях — Aspose.Slides FOSS для .NET

Aspose.Slides FOSS for .NET позволяет встраивать изображения в общую коллекцию изображений презентации и отображать их на слайдах с помощью фигур PictureFrame. Изображения также могут использоваться в качестве заливки фона фигур через FillType.Picture.


Добавление изображения из файла

Загрузите байты изображения с диска и добавьте их в коллекцию изображений презентации с помощью prs.Images.AddImage(). Затем разместите изображение на слайде как PictureFrame:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
// Add the image to the shared collection
var imageData = File.ReadAllBytes("logo.png");
var img = prs.Images.AddImage(imageData);

// Place it on the slide as a PictureFrame
var slide = prs.Slides[0];
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 300, 200, img);

prs.Save("with-image.pptx", SaveFormat.Pptx);

Четыре позиционных аргумента к AddPictureFrame(): x, y, width, height в пунктах.


Добавление изображения из потока

Если у вас есть данные изображения из потока (например, загруженные из URL или считанные из базы данных), передайте их напрямую в AddImage():

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
using var stream = File.OpenRead("photo.jpg");
var img = prs.Images.AddImage(stream);
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 100, 80, 400, 250, img);
prs.Save("from-stream.pptx", SaveFormat.Pptx);

Позиционирование и изменение размеров PictureFrame

PictureFrame, возвращаемый AddPictureFrame(), наследует все свойства геометрии Shape и может быть перемещён после создания:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);

var pf = prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, 100, 100, img);

// Reposition and resize after creation
pf.X = 50;
pf.Y = 100;
pf.Width = 350;
pf.Height = 250;

prs.Save("positioned.pptx", SaveFormat.Pptx);

Использование изображения в качестве заливки фигуры

Любая фигура (не только PictureFrame) может использовать изображение в качестве заливки фона. Установите FillType = FillType.Picture и назначьте изображение PictureFillFormat.Picture.Image:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var imageData = File.ReadAllBytes("background.png");
var img = prs.Images.AddImage(imageData);

var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, 50, 50, 400, 250);
shape.FillFormat.FillType = FillType.Picture;
shape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
shape.FillFormat.PictureFillFormat.Picture.Image = img;

prs.Save("picture-fill.pptx", SaveFormat.Pptx);

PictureFillMode.Stretch масштабирует изображение, чтобы заполнить всю форму.


Добавление нескольких изображений на слайды

Изображения, добавленные в prs.Images, общие для всех слайдов. Один и тот же объект изображения можно использовать на нескольких слайдах без дублирования данных:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var logoData = File.ReadAllBytes("logo.png");
var logo = prs.Images.AddImage(logoData);

// Add the same image to the first slide
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 600, 10, 100, 40, logo);

prs.Save("shared-image.pptx", SaveFormat.Pptx);

См. также

 Русский