Optimaliseer het beheer van afbeeldingen in presentaties op Android
Inleiding
Afbeeldingen maken presentaties boeiender en interessanter. In Microsoft PowerPoint kun je afbeeldingen invoegen vanuit een bestand, het internet of andere locaties op dia’s. Op dezelfde manier stelt Aspose.Slides je in staat om afbeeldingen aan dia’s in je presentaties toe te voegen via verschillende procedures.
Tip
Aspose biedt gratis converters—JPEG naar PowerPoint en PNG naar PowerPoint—die mensen in staat stellen snel presentaties te maken van afbeeldingen.Info
Als je een afbeelding wilt toevoegen als een frame‑object—vooral wanneer je de standaard opmaakopties wilt gebruiken om de grootte te wijzigen, effecten toe te voegen, enzovoort—zie Afbeeldingsframe.Aspose.Slides ondersteunt bewerkingen met afbeeldingen in deze populaire formaten: JPEG, PNG, GIF en andere.
Afbeeldingen die lokaal zijn opgeslagen toevoegen aan dia’s
Je kunt één of meerdere afbeeldingen op je computer aan een dia in een presentatie toevoegen. Deze voorbeeldcode in Java laat zien hoe je een afbeelding aan een dia toevoegt:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Afbeeldingen van het web toevoegen aan dia’s
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 Java:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
URL imageUrl = new URL("[REPLACE WITH URL]");
URLConnection connection = imageUrl.openConnection();
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[1024];
int read;
while ((read = inputStream.read(buffer, 0, buffer.length)) != -1)
outputStream.write(buffer, 0, read);
outputStream.flush();
IPPImage image = pres.getImages().addImage(outputStream.toByteArray());
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
} finally {
if (inputStream != null) inputStream.close();
outputStream.close();
}
pres.save("pres.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Afbeeldingen toevoegen aan dia‑masters
Een dia‑master is de bovenste dia die informatie (thema, lay‑out, enz.) over alle dia’s eronder opslaat en beheert. Dus wanneer je een afbeelding aan een dia‑master toevoegt, verschijnt die afbeelding op elke dia onder die master.
Deze Java‑voorbeeldcode laat zien hoe je een afbeelding aan een dia‑master toevoegt:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IMasterSlide masterSlide = slide.getLayoutSlide().getMasterSlide();
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
masterSlide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Afbeeldingen toevoegen als dia‑achtergronden
Je kunt ervoor kiezen een afbeelding als achtergrond te gebruiken voor een specifieke dia of meerdere dia’s. In dat geval moet je Afbeeldingen instellen als achtergronden voor dia’s bekijken.
SVG toevoegen aan presentaties
Je kunt elke afbeelding aan een presentatie toevoegen of invoegen met behulp van de addPictureFrame‑methode die behoort tot de IShapeCollection interface.
Om een afbeeldingobject op basis van een SVG‑afbeelding te maken, kun je dit op deze manier doen:
- Maak een SvgImage‑object aan om het in ImageShapeCollection in te voegen
- Maak een PPImage‑object aan vanuit ISvgImage
- Maak een PictureFrame‑object aan 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:
// Instantieer de Presentation-klasse die een PPTX-bestand vertegenwoordigt
Presentation pres = new Presentation();
try {
String svgContent = new String(Files.readAllBytes(Paths.get("image.svg")));
ISvgImage svgImage = new SvgImage(svgContent);
IPPImage ppImage = pres.getImages().addImage(svgImage);
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0,
ppImage.getWidth(), ppImage.getHeight(), ppImage);
pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
SVG converteren naar een set vormen
De conversie van SVG naar een set vormen in Aspose.Slides is vergelijkbaar met de PowerPoint‑functionaliteit voor het werken met SVG‑afbeeldingen:

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 te converteren naar een set vormen:
// Nieuwe presentatie maken
IPresentation presentation = new Presentation();
try {
// Inhoud van SVG-bestand lezen
byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));
// SvgImage-object maken
ISvgImage svgImage = new SvgImage(svgContent);
// Diaformaat ophalen
Dimension2D slideSize = presentation.getSlideSize().getSize();
// SVG-afbeelding omzetten naar een groep vormen en schalen naar diaformaat
presentation.getSlides().get_Item(0).getShapes().
addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());
// Presentatie opslaan in PPTX-formaat
presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Afbeeldingen als EMF toevoegen aan dia’s
Aspose.Slides voor Android via Java stelt je in staat EMF‑afbeeldingen te genereren uit Excel‑bladen en de afbeeldingen als EMF toe te voegen aan dia’s met Aspose.Cells.
Deze voorbeeldcode laat zien hoe je de beschreven taak uitvoert:
Workbook book = new Workbook("chart.xlsx");
Worksheet sheet = book.getWorksheets().get(0);
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setHorizontalResolution(200);
options.setVerticalResolution(200);
options.setImageType(ImageType.EMF);
//Sla het werkboek op in een stream
SheetRender sr = new SheetRender(sheet, options);
Presentation pres = new Presentation();
try {
pres.getSlides().removeAt(0);
String EmfSheetName = "";
for (int j = 0; j < sr.getPageCount(); j++)
{
EmfSheetName = "test" + sheet.getName() + " Page" + (j + 1) + ".out.emf";
sr.toImage(j, EmfSheetName);
IPPImage picture;
IImage image = Images.fromFile(EmfSheetName);
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
ISlide slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(SlideLayoutType.Blank));
IShape m = slide.getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0,
(float)pres.getSlideSize().getSize().getWidth(),
(float)pres.getSlideSize().getSize().getHeight(),
picture);
}
pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Afbeeldingen vervangen in de afbeeldingscollectie
Aspose.Slides stelt je in staat afbeeldingen die opgeslagen zijn in de afbeeldingscollectie van een presentatie (inclusief die welke door dia‑vormen worden gebruikt) te 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‑data, een IImage‑instantie, of een andere afbeelding die al in de collectie bestaat.
Volg de onderstaande stappen:
- Laad het presentatie‑bestand dat afbeeldingen bevat met behulp van 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 de afbeelding in een IImage object en vervang de doelafbeelding door dat object.
- In de derde benadering, vervang 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 presentatiebestand vertegenwoordigt.
Presentation presentation = new Presentation("sample.pptx");
try {
// De eerste manier.
IImage imageData = Images.fromStream(new FileInputStream("image0.jpeg"));
IPPImage oldImage = presentation.getImages().get_Item(0);
oldImage.replaceImage(imageData);
// De tweede manier.
IImage newImage = Images.fromFile("image1.png");
oldImage = presentation.getImages().get_Item(1);
oldImage.replaceImage(newImage);
newImage.dispose();
// De derde manier.
oldImage = presentation.getImages().get_Item(2);
oldImage.replaceImage(presentation.getImages().get_Item(3));
// De presentatie opslaan in een bestand.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Info
Met de gratis Aspose Text to GIF converter kun je eenvoudig teksten animeren, GIF’s maken van teksten, enzovoort.FAQ
Blijft de oorspronkelijke resolutie van de afbeelding behouden na invoegen?
Ja. De oorspronkelijke pixels blijven 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 in tientallen dia’s tegelijk 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, waarna individuele onderdelen bewerkbaar worden met de standaard vormeigenschappen.
Hoe kan ik een afbeelding als achtergrond instellen voor meerdere dia’s tegelijk?
Stel de afbeelding in als achtergrond op de master‑dia of de betreffende lay‑out—alle dia’s die die master/lay‑out gebruiken, erven de achtergrond.
Hoe voorkom ik dat de presentatie in omvang “uitloopt” door veel afbeeldingen?
Herbruik één afbeelding in plaats van duplicaten, kies redelijke resoluties, pas compressie toe bij het opslaan en houd herhaalde grafieken op de master waar passend.