Wie man Bilder zu PowerPoint-Slides in .NET hinzufügt

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) -> PictureFrame

Alle 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);
PictureFillModeVerhalten
StretchSkalieren Sie das Bild, um den Rahmen zu füllen und ignorieren sie die Seitenverhältnisse.
TileWiederholen 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.


Siehe auch:

 Deutsch