Wie man Bilder zu PowerPoint-Slides in .NET hinzufügt
Die Bilder in Aspose.Slides FOSS sind als eingebettet. Bildrahmen,Die Bilder werden in der Bildverarbeitung gespeichert, und die Daten für das Bild sind im Computer gespeiht. prs.Images Die Daten werden in der Sammlung und im Rahmen verwiesen.
Voraussetzungen für die Durchführung der Maßnahmen
aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.Ein Bild aus einer Datei hinzufügen
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);Die AddPictureFrame Unterschrift:
AddPictureFrame(shapeType, x, y, width, height, image) -> PictureFrameAlle Dimensionen sind in Punkte Für eine Standard-Slide mit einer Größe von 10 x 7,5 Zoll beträgt der Koordinatenraum 720 x 540 Punkte.
Ein Bild aus einem Stream hinzufügen
Wenn Sie das Bild bereits als Stream haben (z. B. von einer URL heruntergeladen oder aus einer Datenbank gelesen):
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);Steuerung des Füllmodus
Die PictureFormat auf einer PictureFrame steuert, wie das Bild die Rahmengrenzen füllt:
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 | Verhalten |
|---|---|
Stretch | Skalieren Sie das Bild, um den Rahmen zu füllen und ignorieren sie die Seitenverhältnisse. |
Tile | Wiederholen Sie das Bild als geflieste Muster. |
Mehrfache Bilder zu verschiedenen Folien hinzufügen
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);Zählen Sie Bilder in einer vorhandenen Präsentation
using Aspose.Slides.Foss;
using var prs = new Presentation("with-image.pptx");
Console.WriteLine($"Presentation contains {prs.Images.Count} image(s)");Die prs.Images Die Sammlung wird auf allen Folien geteilt: die gleichen Bildbyte werden einmal gespeichert, auch wenn der Bilderrahmen auf mehreren Fotien erscheint.