Trabalhando com Imagens em Apresentações — Aspose.Slides FOSS para .NET
Aspose.Slides FOSS for .NET permite incorporar imagens na coleção de imagens compartilhadas de uma apresentação e exibi‑las nos slides usando formas PictureFrame. As imagens também podem ser usadas como preenchimentos de fundo de forma via FillType.Picture.
Adicionando uma Imagem a partir de Arquivo
Carregue os bytes da imagem do disco e adicione-os à coleção de imagens da apresentação com prs.Images.AddImage(). Em seguida, coloque a imagem em um slide como um 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);Os quatro argumentos posicionais para AddPictureFrame() são: x, y, width, height em pontos.
Adicionando uma Imagem a partir de um Stream
Se você tem dados de imagem de um stream (por exemplo, baixados de uma URL ou lidos de um banco de dados), passe-os diretamente para 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);Posicionamento e Dimensionamento de um PictureFrame
O PictureFrame retornado por AddPictureFrame() herda todas as propriedades de geometria Shape e pode ser reposicionado após a criação:
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);Usando uma Imagem como Preenchimento de Forma
Qualquer forma (não apenas PictureFrame) pode usar uma imagem como preenchimento de fundo. Defina FillType = FillType.Picture e atribua a imagem a 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 dimensiona a imagem para preencher toda a forma.
Adicionando Múltiplas Imagens em Slides
Imagens adicionadas a prs.Images são compartilhadas em todos os slides. O mesmo objeto de imagem pode ser usado em vários slides sem duplicar os dados:
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);