Trabajando con Imágenes en Presentaciones — 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 formas. Las imágenes también pueden usarse como rellenos de fondo de forma mediante 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 una 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.
Añadiendo una Imagen desde un Stream
Si tiene datos de imagen provenientes de un flujo (p. ej., descargados de una URL o leídos de una base de datos), páselos 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 todos los Shape propiedades de geometría y puede reposicionarse 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.
Añadiendo Múltiples Imágenes a lo Largo de Diapositivas
Imágenes añadidas a prs.Images se comparten en todas las diapositivas. El mismo objeto de imagen puede usarse en múltiples 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);