Как извлекать изображения из документов PowerPoint в Python
Извлечение изображений из документа PowerPoint может быть полезной задачей, когда вам нужно получить доступ к содержащимся в нем визуальным активам или перепрофилировать их. Этот процесс включает в себя определение и сохранение отдельных файлов изображений, встроенных в презентацию.
В этой статье я расскажу, как извлекать изображения из слайда или всего документа PowerPoint с помощью Python.
- Извлечение изображений из слайда презентации
- Извлечение изображений из документа PowerPoint
Установите зависимость
Это решение требует установки в качестве зависимости Spire.Presentation for Python, которая представляет собой библиотеку Python для чтения, создания и работы с документами PowerPoint в программе на Python. Вы можете установить Spire.Presentation for Python, выполнив следующую команду pip.
pip install Spire.Presentation
Извлечение изображений из слайда презентации
Чтобы извлечь изображения из определенного слайда, необходимо просмотреть все фигуры на слайде и найти фигуры, имеющие тип SlidePicture или PictureShape, а затем использовать метод SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() или PictureShape.EmbedImage.Image.Save() для сохранения изображений в файлы изображений.
from spire.presentation.common import *
from spire.presentation import *
# Создание экземпляра Presentation
ppt = Presentation()
# Загрузка файла PowerPoint
ppt.LoadFromFile("sample.pptx")
# Получение заданного слайда
slide = ppt.Slides[2];
i = 0
# Перебор всех фигур на слайде
for s in slide.Shapes:
# Проверка, является ли фигура типа SlidePicture
if isinstance(s, SlidePicture):
# Если да, то извлечение изображения
ps = s if isinstance(s, SlidePicture) else None
ps.PictureFill.Picture.EmbedImage.Image.Save("Output/SlidePic_"+str(i)+".png")
i += 1
# Проверка, является ли фигура типа PictureShape
if isinstance(s, PictureShape):
# Если да, то извлечение изображения
ps = s if isinstance(s, PictureShape) else None
ps.EmbedImage.Image.Save("Output/SlidePic_"+str(i)+".png")
i += 1
ppt.Dispose()
Извлечение изображений из документа PowerPoint
Извлечение изображений из всей презентации PowerPoint требует несколько иного подхода. Вместо того чтобы перебирать слайды и фигуры, можно воспользоваться свойством Presentation.Images. Это свойство предоставляет доступ к коллекции всех изображений в презентации. Перебирая эту коллекцию и вызывая метод IImageData.Image.Save() для каждого элемента, вы можете сохранить каждое отдельное изображение в отдельный файл изображения.
from spire.presentation.common import *
from spire.presentation import *
# Создание экземпляра Presentation
ppt = Presentation()
# Загрузка файла PowerPoint
ppt.LoadFromFile("sample.pptx")
# Перебор всех изображений в документе
for i, image in enumerate(ppt.Images):
# Извлечение изображений
ImageName = "ExtractImage/Images_"+str(i)+".png"
image.Image.Save(ImageName)
ppt.Dispose()
Заключение
В этой статье вы узнали, как извлекать изображения из документа PowerPoint с помощью Spire.Presentation for Python API. Эта библиотека способна выполнять различные операции над документами PowerPoint, такие как:
Преобразование PPT(X) в HTML в Python