PowerPoint-dia's converteren naar PNG in Python

Overzicht

Dit artikel legt uit hoe u presentatieslides kunt converteren naar PNG-afbeeldingen met Aspose.Slides voor Python via Java. U kunt presentaties laden in formaten zoals PPT, PPTX en ODP, elke slide renderen en deze opslaan als een afzonderlijke PNG-afbeelding.

PowerPoint naar PNG converteren

Laad een presentatie met de Presentation‑klasse en krijg toegang tot de slides via de Presentation.getSlides‑collectie. Het voorbeeld rendert elke slide met Slide.getImage zonder parameters om een miniatuur te maken. Vervolgens wordt IImage.save aangeroepen met ImageFormat.Png om elke gerenderde slide op te slaan als een PNG‑afbeelding.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation

presentation = Presentation("presentation.pptx")
try:
    for index, slide in enumerate(presentation.getSlides()):
        image = slide.getImage()
        try:
            image.save(f"slide_{index}.png", ImageFormat.Png)
        finally:
            image.dispose()
finally:
    presentation.dispose()

PowerPoint naar PNG met aangepaste afmetingen

Geef horizontale en verticale schaalfactoren door aan Slide.getImage om de gerenderde afmetingen te regelen. In dit voorbeeld zijn beide factoren 2, waardoor een slide van 720 × 540 points een afbeelding van 1440 × 1080 pixels oplevert. Gelijke schaalfactoren behouden de beeldverhouding van de slide. Elke gerenderde afbeelding wordt opgeslagen in PNG‑formaat.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation

presentation = Presentation("presentation.pptx")
try:
    scale_x = 2.0
    scale_y = scale_x

    for index, slide in enumerate(presentation.getSlides()):
        image = slide.getImage(scale_x, scale_y)
        try:
            image.save(f"slide_{index}.png", ImageFormat.Png)
        finally:
            image.dispose()
finally:
    presentation.dispose()

PowerPoint naar PNG met aangepaste grootte

Om de uitvoerafmetingen in pixels op te geven, geeft u een grootte door aan Slide.getImage in plaats van schaalfactoren. Dit voorbeeld rendert elke slide op 960 × 720 pixels en slaat het resultaat op in PNG‑formaat. Kies afmetingen die overeenkomen met de beeldverhouding van de slide om uitrekking van de afbeelding te voorkomen.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation
from java.awt import Dimension

presentation = Presentation("presentation.pptx")
try:
    image_size = Dimension(960, 720)

    for index, slide in enumerate(presentation.getSlides()):
        image = slide.getImage(image_size)
        try:
            image.save(f"slide_{index}.png", ImageFormat.Png)
        finally:
            image.dispose()
finally:
    presentation.dispose()

Kies een gradient‑renderingsstijl

Stel dat een slide gradient‑vullingen bevat, maar de overgangen in de geëxporteerde PNG er lichter of anders uitzien dan in PowerPoint. U kunt de methode SaveOptions.setGradientStyle gebruiken, die erfelijk is via RenderingOptions, om te bepalen hoe de gradienten worden gerenderd.

Download gradient-styles.pptx en plaats het in de werkmap van de applicatie. De eerste slide bevat twee lineaire gradienten: cyaan naar oranje bovenaan en blauw naar geel onderaan. Elke gradient heeft twee stops, op 0 % en 100 %.

Het volgende voorbeeld laadt deze presentatie en rendert dezelfde eerste slide in beide modi met Slide.getImage.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import GradientStyle, ImageFormat, Presentation, RenderingOptions

presentation = Presentation("gradient-styles.pptx")
try:
    slide = presentation.getSlides().get_Item(0)

    gradient_styles = (GradientStyle.Default, GradientStyle.PowerPointUI)
    for style in gradient_styles:
        options = RenderingOptions()
        options.setGradientStyle(style)

        style_name = "Default" if style == GradientStyle.Default else "PowerPointUI"
        image = slide.getImage(options, 1.0, 1.0)
        try:
            image.save(f"gradient-{style_name}.png", ImageFormat.Png)
        finally:
            image.dispose()
finally:
    presentation.dispose()

De afbeeldingen hieronder tonen de uitvoer van dezelfde slide, met beide gradienten in elke afbeelding:

Default PowerPointUI
Cyaan-naar-oranje en blauw-naar-geel gradienten gerenderd met Default Dezelfde gradienten gerenderd met PowerPointUI

In dit voorbeeld levert Default lichtere tussenliggende kleuren op, terwijl PowerPointUI donkerdere tussenliggende kleuren oplevert. Het verschil hangt af van de kleuren en stops in de gradient.

Kies Default wanneer de standaard Aspose.Slides‑uitvoer aan uw behoeften voldoet. Probeer PowerPointUI wanneer uw prioriteit is om de weergave in PowerPoint te evenaren. Vergelijk beide uitvoer met het gewenste resultaat; geen van beide modi is universeel beter.

FAQ

Hoe kan ik een specifiek vormelement, zoals een grafiek of afbeelding, exporteren in plaats van de volledige slide?

Aspose.Slides ondersteunt miniaturen genereren voor individuele vormen, waardoor u een vorm als PNG‑afbeelding kunt renderen.

Wordt parallelle conversie ondersteund op een server?

Ja. Gebruik een aparte presentatie‑instantie per thread of proces; deel geen enkele instantie tussen threads.

Wat zijn de beperkingen in de evaluatiemodus bij exporteren naar PNG?

In de evaluatiemodus wordt een watermerk aan de uitvoerafbeeldingen toegevoegd en gelden andere beperkingen tot een licentie is geïnstalleerd.