Optimaliseer afbeeldingbeheer in presentaties in .NET
Introductie
Afbeeldingen maken presentaties boeiender en interessanter. In Microsoft PowerPoint kun je afbeeldingen invoegen vanaf een bestand, het internet of andere locaties op dia’s. Op dezelfde manier maakt Aspose.Slides het mogelijk om afbeeldingen aan dia’s in je presentaties toe te voegen via verschillende methoden.
Tip
Aspose biedt gratis converters—JPEG naar PowerPoint en PNG naar PowerPoint—die mensen in staat stellen snel presentaties te maken vanuit afbeeldingen.Info
Wil je een afbeelding als frame‑object toevoegen—vooral als je van plan bent standaard opmaakopties te gebruiken om de grootte te wijzigen, effecten toe te voegen, enzovoort—bekijk dan Afbeeldingsframe.Opmerking
Je kunt in- en uitvoerbewerkingen met afbeeldingen en PowerPoint‑presentaties manipuleren om een afbeelding van het ene formaat naar het andere te converteren. Zie deze pagina’s: converteer afbeelding naar JPG; converteer JPG naar afbeelding; converteer JPG naar PNG, converteer PNG naar JPG; converteer PNG naar SVG, converteer SVG naar PNG.Aspose.Slides ondersteunt bewerkingen met afbeeldingen in deze populaire formaten: JPEG, PNG, BMP, GIF en andere.
Afbeeldingen lokaal aan dia’s toevoegen
Je kunt één of meerdere afbeeldingen op je computer aan een dia in een presentatie toevoegen. Deze voorbeeldcode in C# laat zien hoe je een afbeelding aan een dia toevoegt:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Afbeeldingen van het web aan dia’s toevoegen
Als de afbeelding die je aan een dia wilt toevoegen niet beschikbaar is op je computer, kun je de afbeelding rechtstreeks van het internet toevoegen.
Deze voorbeeldcode laat zien hoe je een afbeelding van het internet aan een dia toevoegt in C#:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
byte[] imageData;
using (WebClient webClient = new WebClient())
{
imageData = webClient.DownloadData(new Uri("[REPLACE WITH URL]"));
}
IPPImage image = pres.Images.AddImage(imageData);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Afbeeldingen aan dia‑masters toevoegen
Een dia‑master is de bovenste dia die informatie (thema, lay‑out, enz.) over alle onderliggende dia’s opslaat en beheert. Dus wanneer je een afbeelding aan een dia‑master toevoegt, verschijnt die afbeelding op elke dia onder die dia‑master.
Deze C#‑voorbeeldcode laat zien hoe je een afbeelding aan een dia‑master toevoegt:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IMasterSlide masterSlide = slide.LayoutSlide.MasterSlide;
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
masterSlide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Afbeeldingen als dia‑achtergronden toevoegen
Je kunt besluiten een afbeelding als achtergrond te gebruiken voor een specifieke dia of meerdere dia’s. In dat geval moet je Afbeeldingen als achtergronden voor dia’s instellen bekijken.
SVG aan presentaties toevoegen
Je kunt elke afbeelding aan een presentatie toevoegen of invoegen door de AddPictureFrame‑methode te gebruiken die behoort tot de IShapeCollection interface.
Om een afbeeldingsobject te maken op basis van een SVG‑afbeelding, kun je dit op de volgende manier doen:
- Maak een SvgImage‑object om het in ImageShapeCollection in te voegen
- Maak een PPImage‑object van ISvgImage
- Maak een PictureFrame‑object met behulp van de IPPImage‑interface
Deze voorbeeldcode laat zien hoe je de bovenstaande stappen implementeert om een SVG‑afbeelding aan een presentatie toe te voegen:
// Het pad naar de documentenmap
string dataDir = @"D:\Documents\";
// Naam van bron‑SVG‑bestand
string svgFileName = dataDir + "sample.svg";
// Bestandsnaam van uitvoerpresentatie
string outPptxPath = dataDir + "presentation.pptx";
// Nieuwe presentatie maken
using (var p = new Presentation())
{
// SVG‑bestandsinhoud lezen
string svgContent = File.ReadAllText(svgFileName);
// SvgImage‑object maken
ISvgImage svgImage = new SvgImage(svgContent);
// PPImage‑object maken
IPPImage ppImage = p.Images.AddImage(svgImage);
// Maakt een nieuw PictureFrame
p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 200, 100, ppImage.Width, ppImage.Height, ppImage);
// Presentatie opslaan in PPTX‑formaat
p.Save(outPptxPath, SaveFormat.Pptx);
}
SVG naar een verzameling vormen converteren
De conversie van SVG naar een verzameling vormen in Aspose.Slides is vergelijkbaar met de PowerPoint‑functionaliteit die wordt gebruikt om met SVG‑afbeeldingen te werken:

De functionaliteit wordt geleverd door een van de overloads van de AddGroupShape methode van de IShapeCollection interface die een ISvgImage‑object als eerste argument accepteert.
Deze voorbeeldcode laat zien hoe je de beschreven methode gebruikt om een SVG‑bestand naar een verzameling vormen te converteren:
// Het pad naar de documentenmap
string dataDir = @"D:\Documents\";
// Naam van bron‑SVG‑bestand
string svgFileName = dataDir + "sample.svg";
// Bestandsnaam van uitvoerpresentatie
string outPptxPath = dataDir + "presentation.pptx";
// Nieuwe presentatie maken
using (IPresentation presentation = new Presentation())
{
// SVG‑bestandsinhoud lezen
string svgContent = File.ReadAllText(svgFileName);
// SvgImage‑object maken
ISvgImage svgImage = new SvgImage(svgContent);
// Dia‑grootte ophalen
SizeF slideSize = presentation.SlideSize.Size;
// SVG‑afbeelding omzetten naar groep vormen en schalen naar dia‑grootte
presentation.Slides[0].Shapes.AddGroupShape(svgImage, 0f, 0f, slideSize.Width, slideSize.Height);
// Presentatie opslaan in PPTX‑formaat
presentation.Save(outPptxPath, SaveFormat.Pptx);
}
Afbeeldingen als EMF aan dia’s toevoegen
Aspose.Slides for .NET stelt je in staat om EMF‑afbeeldingen te genereren uit Excel‑bladen en de afbeeldingen als EMF op dia’s toe te voegen met Aspose.Cells.
Deze voorbeeldcode laat zien hoe je de beschreven taak uitvoert:
using (Workbook book = new Workbook(dataDir + "chart.xlsx"))
{
Worksheet sheet = book.Worksheets[0];
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.HorizontalResolution = 200;
options.VerticalResolution = 200;
options.ImageFormat = System.Drawing.Imaging.ImageFormat.Emf;
// Sla de werkmap op naar stream
SheetRender sr = new SheetRender(sheet, options);
using (Presentation pres = new Presentation())
{
pres.Slides.RemoveAt(0);
String EmfSheetName = "";
for (int j = 0; j < sr.PageCount; j++)
{
EmfSheetName = dataDir + "test" + sheet.Name + " Page" + (j + 1) + ".out.emf";
sr.ToImage(j, EmfSheetName);
var bytes = File.ReadAllBytes(EmfSheetName);
var emfImage = pres.Images.AddImage(bytes);
ISlide slide = pres.Slides.AddEmptySlide(pres.LayoutSlides.GetByType(SlideLayoutType.Blank));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, pres.SlideSize.Size.Width, pres.SlideSize.Size.Height, emfImage);
}
pres.Save(dataDir + "Saved.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
}
Afbeeldingen in de afbeeldingscollectie vervangen
Aspose.Slides laat je afbeeldingen die zijn opgeslagen in de afbeeldingscollectie van een presentatie (inclusief die gebruikt door dia‑vormen) vervangen. Deze sectie toont verschillende benaderingen om afbeeldingen in de collectie bij te werken. De API biedt eenvoudige methoden om een afbeelding te vervangen met behulp van ruwe byte‑gegevens, een IImage‑instantie, of een andere afbeelding die al in de collectie bestaat.
- Laad het presentatie‑bestand dat afbeeldingen bevat met de Presentation klasse.
- Laad een nieuwe afbeelding vanuit een bestand in een byte‑array.
- Vervang de doelafbeelding door de nieuwe afbeelding met behulp van de byte‑array.
- In de tweede benadering laad je de afbeelding in een IImage object en vervang je de doelafbeelding door dat object.
- In de derde benadering vervang je de doelafbeelding door een afbeelding die al bestaat in de afbeeldingscollectie van de presentatie.
- Schrijf de gewijzigde presentatie weg als een PPTX‑bestand.
// Instantieer de Presentation‑klasse die een presentatie‑bestand vertegenwoordigt.
using Presentation presentation = new Presentation("sample.pptx");
// De eerste manier.
byte[] imageData = File.ReadAllBytes("image0.jpeg");
IPPImage oldImage = presentation.Images[0];
oldImage.ReplaceImage(imageData);
// De tweede manier.
using IImage newImage = Images.FromFile("image1.png");
oldImage = presentation.Images[1];
oldImage.ReplaceImage(newImage);
// De derde manier.
oldImage = presentation.Images[2];
oldImage.ReplaceImage(presentation.Images[3]);
// Sla de presentatie op naar een bestand.
presentation.Save("output.pptx", SaveFormat.Pptx);
Info
Met de gratis Aspose Text to GIF converter kun je eenvoudig teksten animeren, GIF’s van teksten maken, enzovoort.Veelgestelde vragen
Blijft de originele afbeeldingsresolutie behouden na invoeging?
Ja. De bronpixels worden behouden, maar het uiteindelijke uiterlijk hangt af van hoe de afbeelding op de dia wordt geschaald en van eventuele compressie bij het opslaan.
Wat is de beste manier om hetzelfde logo tegelijk op tientallen dia’s te vervangen?
Plaats het logo op de master‑dia of een lay‑out en vervang het in de afbeeldingscollectie van de presentatie—updates worden doorgevoerd naar alle elementen die die bron gebruiken.
Kan een ingevoegde SVG worden geconverteerd naar bewerkbare vormen?
Ja. Je kunt een SVG omzetten naar een groep vormen; daarna worden de individuele onderdelen bewerkbaar met standaard vorm‑eigenschappen.
Hoe kan ik een afbeelding als achtergrond voor meerdere dia’s tegelijk instellen?
Ken de afbeelding toe als achtergrond op de master‑dia of de betreffende lay‑out—alle dia’s die die master/lay‑out gebruiken, nemen de achtergrond over.
Hoe voorkom ik dat de presentatie in omvang “opschiet” door veel afbeeldingen?
Hergebruik één afbeeldingsbron in plaats van duplicaten, kies redelijke resoluties, pas compressie toe bij het opslaan, en houd herhaalde grafieken op de master waar passend.