Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant .NET
Aspose.Slides FOSS paveikslai yra įterpiami kaip paveikslų rėmai, formos, kurios talpina paveikslą ir gali būti pozicionuojamos, keičiamas dydis ir stilizuojamos kaip bet kuri kita forma. Paveikslo duomenys saugomi vieną kartą prs.Images kolekcijoje ir yra nuorodojami rėmo.
Būtinosios sąlygos
dotnet add package Aspose.Slides.FossPridėti paveikslėlį iš failo
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// Load image into the presentation's image collection
byte[] imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);
// Add a picture frame at (x=50, y=50, width=400, height=300) in points
var frame = slide.Shapes.AddPictureFrame(
ShapeType.Rectangle,
50, 50, 400, 300,
img
);
prs.Save("with-image.pptx", SaveFormat.Pptx);AddPictureFrame parašas:
AddPictureFrame(shapeType, x, y, width, height, image) -> PictureFrameVisi matmenys yra taškai (1 taškas = 1/72 colio). Standartinei 10 x 7.5 colių skaidrei koordinačių erdvė yra 720 x 540 taškų.
Pridėti paveikslėlį iš srauto
Jei jau turite paveikslėlį kaip srautą (pvz., atsisiųstą iš URL arba perskaitytą iš duomenų bazės):
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = File.OpenRead("logo.png");
var img = prs.Images.AddImage(stream);
prs.Slides[0].Shapes.AddPictureFrame(
ShapeType.Rectangle,
200, 100, 300, 200,
img
);
prs.Save("logo-slide.pptx", SaveFormat.Pptx);Valdyti užpildymo režimą
PictureFormat ant PictureFrame valdo, kaip vaizdas užpildo kadro ribas:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
byte[] texData = File.ReadAllBytes("texture.png");
var img = prs.Images.AddImage(texData);
var frame = prs.Slides[0].Shapes.AddPictureFrame(
ShapeType.Rectangle, 50, 50, 600, 350, img
);
// STRETCH: scale image to fill the frame exactly (default)
frame.PictureFormat.PictureFillMode = PictureFillMode.Stretch;
// TILE: repeat the image in a grid pattern
// frame.PictureFormat.PictureFillMode = PictureFillMode.Tile;
prs.Save("filled.pptx", SaveFormat.Pptx);PictureFillMode | Elgsena |
|---|---|
Stretch | Mastelis paveikslą, kad užpildytų rėmelį, nepaisant kraštinių santykio |
Tile | Kartoti paveikslą kaip plytelės šabloną |
Pridėti kelias nuotraukas į skirtingas skaidres
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
string[] imageFiles = { "slide1.jpg", "slide2.jpg", "slide3.jpg" };
using var prs = new Presentation();
var layout = prs.Slides[0].LayoutSlide;
// Ensure enough slides exist
while (prs.Slides.Count < imageFiles.Length)
prs.Slides.AddEmptySlide(layout);
for (int i = 0; i < imageFiles.Length; i++)
{
if (!File.Exists(imageFiles[i])) continue;
var img = prs.Images.AddImage(File.ReadAllBytes(imageFiles[i]));
prs.Slides[i].Shapes.AddPictureFrame(
ShapeType.Rectangle, 0, 0, 720, 540, img
);
}
prs.Save("multi-image.pptx", SaveFormat.Pptx);Suskaičiuoti paveikslėlius esamo pristatyme
using Aspose.Slides.Foss;
using var prs = new Presentation("with-image.pptx");
Console.WriteLine($"Presentation contains {prs.Images.Count} image(s)");prs.Images kolekcija yra bendrinama visose skaidrėse: tas pats paveikslėlio baitų rinkinys saugomas vieną kartą, net jei paveikslėlio rėmelis pasirodo keliuose skaidrėse.