Práce s obrázky v prezentacích — Aspose.Slides FOSS pro .NET
Aspose.Slides FOSS for .NET lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame tvary. Obrázky lze také použít jako výplně pozadí tvarů pomocí FillType.Picture.
Přidání obrázku ze souboru
Načtěte bajty obrázku z disku a přidejte je do kolekce obrázků prezentace pomocí prs.Images.AddImage(). Pak umístěte obrázek na snímek jako 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);Čtyři poziční argumenty pro AddPictureFrame() jsou: x, y, width, height v bodech.
Přidání obrázku ze streamu
Pokud máte data obrázku ze streamu (např. stažená z URL nebo načtená z databáze), předávejte je přímo do 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);Umístění a změna velikosti PictureFrame
Tento PictureFrame vrácený funkcí AddPictureFrame() dědí všechny Shape geometrické vlastnosti a může být po vytvoření přemístě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);Použití obrázku jako výplně tvaru
Jakýkoli tvar (nejen PictureFrame) může použít obrázek jako výplň pozadí. Nastavte FillType = FillType.Picture a přiřaďte obrázek k 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 škáluje obrázek tak, aby vyplnil celý tvar.
Přidávání více obrázků napříč snímky
Obrázky přidané do prs.Images jsou sdíleny napříč všemi snímky. Stejný objekt obrázku může být použit na více snímcích bez duplikace dat:
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);