Trabalhar com imagens em apresentações Aspose.Slides FOSS para .NET
Aspose.Slides FOSS for .NET lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame imagens também podem ser usadas como forma de fundo preenche via FillType.Picture.
Adicionar uma imagem de um arquivo
Carregar bytes de imagem do disco e adicioná-los à coleção de fotos da apresentação com prs.Images.AddImage().Depois coloque a imagem num 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 de posição para a AddPictureFrame() são: x, y, width, height em pontos.
Adicionar uma imagem de um fluxo
Se você tem dados de imagem a partir de um fluxo (por exemplo, baixado a uma URL ou ler de uma base de dados), passe diretamente para o 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 tamanho de um quadro fotográfico
A Comissão PictureFrame devolvido por: AddPictureFrame() herda tudo. Shape Propriedades geométricas e podem ser reposicionados 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);Usar uma imagem como um preenchimento de forma
Qualquer forma (não apenas PictureFrame) pode usar uma imagem como seu preenchimento de fundo. Set FillType = FillType.Picture e atribuir a imagem para o 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 Escala a imagem para preencher toda a forma.
Adicionar várias imagens em slides
Imagens adicionadas a prs.Images 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);