Trabajando con imágenes en presentaciones — Aspose.Slides FOSS para .NET
Aspose.Slides FOSS for .NET le permite incrustar imágenes en la colección de imágenes compartidas de una presentación y mostrarlas en diapositivas usando formas PictureFrame. Las imágenes también pueden usarse como rellenos de fondo de forma a través de FillType.Picture.
Agregar una imagen desde archivo
Cargue los bytes de la imagen desde el disco y añádalos a la colección de imágenes de la presentación con prs.Images.AddImage(). Luego coloque la imagen en una diapositiva como un 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);Los cuatro argumentos posicionales de AddPictureFrame() son: x, y, width, height en puntos.
Agregar una imagen desde un flujo
Si tienes datos de imagen provenientes de un flujo (p. ej., descargados de una URL o leídos de una base de datos), pásalos directamente a 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);Posicionamiento y dimensionado de un PictureFrame
El PictureFrame devuelto por AddPictureFrame() hereda todas las propiedades de geometría Shape y puede ser reposicionado después de la creación:
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 una imagen como relleno de forma
Cualquier forma (no solo PictureFrame) puede usar una imagen como relleno de fondo. Establezca FillType = FillType.Picture y asigne la imagen 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 escala la imagen para llenar toda la forma.
Agregar varias imágenes en diapositivas
Las imágenes añadidas a prs.Images se comparten en todas las diapositivas. El mismo objeto de imagen puede usarse en varias diapositivas sin duplicar los datos:
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);