Extrahieren Sie Bilder aus PowerPoint-Präsentationen in Python

Bilder sind ein effektives Kommunikationsmittel, das den Inhalt lebendig macht. Aus diesem Grund werden Bilder häufig in Webseiten, Dokumenten, Präsentationen usw. verwendet. MS PowerPoint-Präsentationen sind normalerweise mit weniger Text und mehr grafischen Objekten und Bildern aufgebaut. Daher müssen Sie bei der programmgesteuerten Verarbeitung der Präsentationen möglicherweise Bilder zusammen mit dem Text extrahieren. Um dies zu erreichen, behandelt dieser Artikel das Extrahieren von Bildern aus PPT- oder PPTX-Präsentationen in Python.

Python-Bibliothek zum Extrahieren von Bildern aus Präsentationen

Um Bilder aus PowerPoint-Präsentationen zu extrahieren, verwenden wir Aspose.Slides for Python via .NET. Es ist eine leistungsstarke Python-Bibliothek, die entwickelt wurde, um Präsentationen von Grund auf neu zu erstellen. Darüber hinaus können Sie die vorhandenen Präsentationen nahtlos konvertieren und bearbeiten. Sie können es mit dem folgenden Pip-Befehl von PyPI installieren.

> pip install aspose.slides

Extrahieren Sie Bilder aus einer PowerPoint-PPT in Python

Im Folgenden sind die Schritte zum Extrahieren von Bildern aus einer PowerPoint-Präsentation in Python aufgeführt.

  • Laden Sie die Präsentation mithilfe der Präsentationsklasse.
  • Durchlaufen Sie die Bilder in der Präsentation mithilfe der Presentation.images-Sammlung.
  • Speichern Sie jedes Bild als Datei.

Das folgende Codebeispiel zeigt, wie Bilder aus einer PPTX-Datei in Python extrahiert werden.

import aspose.slides as slides
import aspose.pydrawing as drawing

imageIndex=1
# Präsentation laden
with slides.Presentation("presentation.pptx") as pres:

    # Schleife durch Bilder
    for image in pres.images:
        file_name = "Image_{0}.{1}"
        image_type = image.content_type.split("/")[1]
        image_format = get_image_format(image_type)

        # Bild speichern
        image.system_image.save(file_name.format( imageIndex, image_type), image_format)
        imageIndex = imageIndex + 1

Extrahieren Sie Bilder aus Formen in einer PPT

In bestimmten Fällen müssen Sie Bilder möglicherweise nur aus den Formen in einer Präsentation extrahieren. Sehen wir uns also an, wie man Bilder aus Formen in einer PPT in Python extrahiert.

  • Laden Sie zunächst die Präsentation mithilfe der Präsentationsklasse.
  • Gehen Sie dann mit der Presentation.slides-Sammlung durch die Folien der Präsentation.
  • Greifen Sie für jede Folie mit der ISlide.shapes-Sammlung auf ihre Formen zu.
  • Führen Sie für jede Form in der Sammlung die folgenden Schritte aus:
    • Wenn die Form eine automatische Form ist und ihr Fülltyp Bild ist, dann extrahieren Sie das Bild mit der Eigenschaft IShape.fillformat.picturefillformat.picture.image.
    • Wenn die Form ein Bilderrahmen ist, extrahieren Sie das Bild mit der Eigenschaft IShape.pictureformat.picture.image.
    • Abschließend speichern Sie das Bild als Datei.

Das folgende Codebeispiel zeigt, wie Sie Bilder aus Formen in einer PPT-Präsentation mit Python extrahieren.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Präsentation laden
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # Schleife durch die Folien
    for slide in pres.slides:
        slideIndex += 1
        image_format = drawing.imaging.ImageFormat.jpeg
        file_name = "BackImage_Slide_{0}{1}.{2}"
      
        # Formen in der Folie durchlaufen
        for i in range(len(slide.shapes)):
            shape = slide.shapes[i]
            shape_image = None

            # Überprüfen Sie, ob die Form eine automatische Form oder ein Bilderrahmen ist
            if type(shape) is slides.AutoShape and shape.fill_format.fill_type == slides.FillType.PICTURE:
                shape_image = shape.fill_format.picture_fill_format.picture.image
            elif type(shape) is slides.PictureFrame:
                shape_image = shape.picture_format.picture.image

            # Bild speichern
            if shape_image is not None:
                image_type = shape_image.content_type.split("/")[1]
                image_format = get_image_format(image_type)

                shape_image.system_image.save(
                                file_name.format("shape_"+str(i)+"_", slideIndex, image_type), 
                                image_format)

Extrahieren Sie Bilder aus Folienhintergründen in einer PPT

Ein weiteres Szenario könnte das Extrahieren der Bilder sein, die als Folienhintergründe verwendet werden. Im Folgenden sind die Schritte zum Extrahieren von Bildern nur aus Folienhintergründen in einer PPT-Präsentation aufgeführt.

  • Laden Sie zunächst die Präsentation mithilfe der Präsentationsklasse.
  • Gehen Sie dann mit der Presentation.slides-Sammlung durch die Folien der Präsentation.
  • Führen Sie für jede Folie die folgenden Schritte aus:
    • Überprüfen Sie, ob die Folie ein Hintergrundbild hat, indem Sie die Eigenschaft ISlide.background.fillformat.filltype verwenden.
    • Wenn der Hintergrund ein Bild enthält, extrahieren Sie das Bild mit der Eigenschaft ISlide.background.fillformat.picturefillformat.picture.image.
    • Überprüfen Sie, ob die Layoutfolie ein Hintergrundbild hat, indem Sie die Eigenschaft ISlide.layoutslide.background.fillformat.filltype verwenden.
    • Wenn der Hintergrund mit einem Bild gefüllt ist, extrahieren Sie es mit der Eigenschaft ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
    • Speichern Sie abschließend das extrahierte Bild als Datei.

Das folgende Codebeispiel zeigt, wie Sie Bilder aus Folienhintergründen in einer PPT in Python extrahieren.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Präsentation laden
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # Durchlaufen Sie die Folien in der Präsentation
    for slide in pres.slides:
        slideIndex += 1
        image_format = drawing.imaging.ImageFormat.jpeg
        back_image = None
        file_name = "BackImage_Slide_{0}{1}.{2}"
        is_layout = False

        # Überprüfen Sie, ob die Hintergründe der Folie und der Layoutfolie mit Bildern gefüllt sind
        if slide.background.fill_format.fill_type == slides.FillType.PICTURE:
            back_image = slide.background.fill_format.picture_fill_format.picture.image
        elif slide.layout_slide.background.fill_format.fill_type == slides.FillType.PICTURE:
            back_image = slide.layout_slide.background.fill_format.picture_fill_format.picture.image
            is_layout = True

        # Bild speichern
        if back_image is not None:
            image_type = back_image.content_type.split("/")[1]
            image_format = get_image_format(image_type)

            back_image.system_image.save(
                file_name.format("LayoutSlide_" if is_layout else "", slideIndex, image_type), 
                image_format)

Beide obigen Codebeispiele verwenden eine Methode getimageformat, die das entsprechende Bildformat für den bereitgestellten Typ zurückgibt. Die Implementierung dieses Verfahrens wird unten bereitgestellt.

import aspose.slides as slides
import aspose.pydrawing as drawing

def get_image_format(image_type):
    return {
        "jpeg": drawing.imaging.ImageFormat.jpeg,
        "emf": drawing.imaging.ImageFormat.emf,
        "bmp": drawing.imaging.ImageFormat.bmp,
        "png": drawing.imaging.ImageFormat.png,
        "wmf": drawing.imaging.ImageFormat.wmf,
        "gif": drawing.imaging.ImageFormat.gif,
    }.get(image_type, drawing.imaging.ImageFormat.jpeg)

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Slides für Python über .NET ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Bilder aus PowerPoint-Präsentationen in Python extrahieren. Wir haben auch das Extrahieren von Bildern aus Formen und Folienhintergründen separat behandelt. Außerdem können Sie mehr über Aspose.Slides für Python erfahren, indem Sie die Dokumentation besuchen. Sie können Ihre Fragen auch über unser Forum stellen.

Siehe auch

Info: Aspose bietet PowerPoint-zu-Bilder-Konverter – PPT zu JPG und [PPT zu PNG][] – mit denen Sie Bilder basierend auf Folien in einer Präsentation erstellen können.