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
- Extrahieren Sie Bilder aus einer PPTX-Präsentation in Python
- Bilder aus Formen extrahieren
- Bildextraktion aus dem Folienhintergrund
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
- Erstellen Sie PowerPoint-Dateien in Python
- Konvertieren Sie PPTX in Python in PDF
- Konvertieren Sie PPT in Python in PNG
- PPT/PPTX zu HTML in Python
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.