Konwertuj slajdy PowerPoint na PNG w Pythonie
Przegląd
Ten artykuł wyjaśnia, jak konwertować slajdy prezentacji na obrazy PNG przy użyciu Aspose.Slides for Python via Java. Możesz ładować prezentacje w formatach takich jak PPT, PPTX i ODP, renderować każdy slajd i zapisywać go jako osobny obraz PNG.
Poniższe przykłady pokazują renderowanie w domyślnej skali, zwiększanie skali, określanie wymiarów wyjściowych w pikselach oraz wybór stylu renderowania gradientu.
Konwertuj PowerPoint na PNG
Załaduj prezentację przy użyciu klasy Presentation i uzyskaj dostęp do jej slajdów poprzez kolekcję Presentation.getSlides. Przykład renderuje każdy slajd za pomocą Slide.getImage bez parametrów, aby utworzyć miniaturę. Następnie wywołuje IImage.save z ImageFormat.Png, aby zapisać każdy wyrenderowany slajd jako obraz PNG.
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()
Note
Przeciążenie Slide.getImage bez parametrów renderuje w skali 0.2. Na przykład slajd o wymiarach 720 × 540 punktów tworzy miniaturę 144 × 108 pikseli. Aby kontrolować wymiary wyjściowe, użyj przeciążeń ze współczynnikami skali lub wyraźnym rozmiarem obrazu pokazanym poniżej.Konwertuj PowerPoint na PNG z niestandardowymi wymiarami
Przekaż poziome i pionowe współczynniki skali do Slide.getImage, aby kontrolować wymiary renderowanego obrazu. W tym przykładzie oba współczynniki wynoszą 2, więc slajd o wymiarach 720 × 540 punktów tworzy obraz 1440 × 1080 pikseli. Równe współczynniki skali zachowują proporcje slajdu. Każdy wyrenderowany obraz jest zapisywany w formacie PNG.
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()
Konwertuj PowerPoint na PNG z niestandardowym rozmiarem
Aby określić wymiary wyjściowe w pikselach, przekaż rozmiar do Slide.getImage zamiast współczynników skali. Ten przykład renderuje każdy slajd w rozmiarze 960 × 720 pikseli i zapisuje wynik w formacie PNG. Wybierz wymiary odpowiadające proporcjom slajdu, aby uniknąć rozciągania obrazu.
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()
Wybierz styl renderowania gradientu
Załóżmy, że slajd zawiera wypełnienia gradientowe, ale przejścia w wyeksportowanym PNG wyglądają jaśniej lub inaczej niż w PowerPoint. Możesz użyć metody SaveOptions.setGradientStyle dziedziczonej po RenderingOptions, aby wybrać sposób renderowania gradientów.
Pobierz gradient-styles.pptx i umieść go w katalogu roboczym aplikacji. Jej pierwszy slajd zawiera dwa gradienty liniowe: od cyjanu do pomarańczu u góry oraz od niebieskiego do żółtego u dołu. Każdy gradient ma dwa przystanki, przy 0% i 100%.
Poniższy przykład ładuje tę prezentację i renderuje ten sam pierwszy slajd w obu trybach za pomocą 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()
Poniższe obrazy pokazują wynik z tego samego slajdu, z dwoma gradientami w każdym obrazie:
| Default | PowerPointUI |
|---|---|
![]() |
![]() |
W tym przykładzie Default powoduje jaadsze kolory pośrednie, podczas gdy PowerPointUI generuje ciemniejsze kolory pośrednie. Różnica zależy od kolorów i przystanków w gradiencie.
Wybierz Default, gdy standardowy wynik Aspose.Slides spełnia Twoje potrzeby. Wypróbuj PowerPointUI, gdy priorytetem jest dopasowanie wyglądu do PowerPoint. Porównaj oba wyniki z zamierzonym efektem; żaden tryb nie jest uniwersalnie lepszy.
Najczęściej zadawane pytania
Jak mogę wyeksportować konkretny kształt, taki jak wykres lub obraz, zamiast całego slajdu?
Aspose.Slides obsługuje generowanie miniatur dla pojedynczych kształtów, umożliwiając renderowanie kształtu jako obrazu PNG.
Czy równoległa konwersja jest obsługiwana na serwerze?
Tak. Użyj osobnej instancji prezentacji dla każdego wątku lub procesu; nie udostępniaj jednej instancji w wielu wątkach.
Jakie są ograniczenia wersji ewaluacyjnej przy eksportowaniu do PNG?
Tryb ewaluacyjny dodaje znak wodny do wygenerowanych obrazów i nakłada inne ograniczenia, dopóki nie zostanie zastosowana licencja.

