Skip to main content

Command Palette

Search for a command to run...

Extract Images from PowerPoint Documents using Python

Updated
3 min read

If you regularly need to reuse visual assets across multiple PowerPoint presentations, extracting images directly from the source slides can save you from the tedious process of searching for and downloading them again. Moreover, harvesting key graphics from your slide decks serves as an excellent backup strategy, safeguarding your critical visual content in case the original presentation files become corrupted or lost. This approach streamlines asset management and ensures that your high-quality media remains readily accessible for future design and documentation projects. This article will guide you through two practical examples demonstrating how to extract images from PowerPoint documents using Python.

Required Python Library: Spire.Presentation for Python. This versatile library supports a wide range of PowerPoint processing operations, including creating, editing, converting, and saving PPT/PPTX documents. You can easily install it using the following pip command:

pip install Spire.Presentation

Extract Images from a Specific Slide

To extract images from a particular slide, you need to iterate through all the shapes on that slide and verify whether each shape belongs to the SlidePicture or PictureShape class. Once identified, the images can be retrieved and saved using their respective built-in methods. The detailed steps are as follows:

  1. Load the PowerPoint document using the LoadFromFile() method.

  2. Access the targeted slide via the Presentation.Slides[index] property.

  3. Loop through all the shapes contained within the selected slide.

  4. Check if a shape is an instance of SlidePicture. If it is, extract and save the image using the SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() method.

  5. Check if a shape is an instance of PictureShape. If it is, extract and save the image using the PictureShape.EmbedImage.Image.Save() method.

Code example:

from spire.presentation.common import *
from spire.presentation import *

# Load the PowerPoint presentation
ppt = Presentation()
ppt.LoadFromFile("/input/presentation.pptx")

# Acquire the second slide
slide = ppt.Slides[1]

i = 0
# Iterate through all shapes on the slide
for s in slide.Shapes:

    # Check if the shape is of SlidePicture type
    if isinstance(s, SlidePicture):

        # Extract and save this type of image
        ps = s if isinstance(s, SlidePicture) else None
        ps.PictureFill.Picture.EmbedImage.Image.Save("/output/ppt-image/image_"+str(i)+".png")
        i += 1

    # Check if the shape is of PictureShape type
    if isinstance(s, PictureShape):

        # Extract and save this type of image
        ps = s if isinstance(s, PictureShape) else None
        ps.EmbedImage.Image.Save("/output/ppt-image/image_"+str(i)+".png")
        i += 1

ppt.Dispose()

Extract All Images from a PowerPoint Document

Extracting every image from an entire PowerPoint file at once is highly efficient and requires a much simpler workflow. You can achieve this by following these straightforward steps:

  • Load the target PowerPoint document using the LoadFromFile() method.

  • Retrieve the complete collection of images embedded within the presentation via the Presentation.Images property.

  • Iterate through the image collection and utilize the IImageData.Image.Save() method to export each image to your designated file path.

Code example:

from spire.presentation.common import *
from spire.presentation import *

# Load the PowerPoint presentation
ppt = Presentation()
ppt.LoadFromFile("/input/presentation.pptx")

# Loop through all the images in the document collection
for i, image in enumerate(ppt.Images):

    # Extract and save each image file
    ImageName = "/output/pptimage/image_"+str(i)+".png"
    image.Image.Save(ImageName)

ppt.Dispose()

Conclusion

By using the programming approaches outlined above, you can automate the extraction of embedded images from PowerPoint presentations. Whether you need to extract visuals from a specific slide or from an entire archive, automation eliminates repetitive manual work and significantly boosts productivity. Incorporating these techniques into your document processing workflows allows for more efficient asset management, robust data backup, and the smooth repurposing of valuable visual resources across various platforms and applications.