Изображения — это эффективный способ коммуникации, который оживляет контент. По этой причине изображения широко используются на веб-страницах, в документах, презентациях и т. д. Презентации MS PowerPoint обычно состоят из меньшего количества текста и большего количества графических объектов и изображений. Поэтому при программной обработке презентаций может потребоваться извлечение изображений вместе с текстом. Для этого в этой статье рассказывается, как извлекать изображения из презентаций PPT или PPTX в Python.
- Библиотека Python для извлечения изображений из презентаций
- Извлечение изображений из презентации PPTX в Python
- Извлечение изображений из фигур
- Извлечение изображения из фона слайда
Библиотека Python для извлечения изображений из презентаций
Для извлечения изображений из презентаций PowerPoint мы будем использовать Aspose.Slides для Python через .NET. Это мощная библиотека Python, предназначенная для создания презентаций с нуля. Более того, он позволяет легко преобразовывать и манипулировать существующими презентациями. Вы можете установить его из PyPI с помощью следующей команды pip.
> pip install aspose.slides
Извлечение изображений из PowerPoint PPT в Python
Ниже приведены шаги для извлечения изображений из презентации PowerPoint в Python.
- Загрузите презентацию с помощью класса Presentation.
- Прокручивайте изображения в презентации, используя коллекцию Presentation.images.
- Сохраните каждое изображение в виде файла.
В следующем примере кода показано, как извлечь изображения из файла PPTX в Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
imageIndex=1
# load presentation
with slides.Presentation("presentation.pptx") as pres:
# loop through images
for image in pres.images:
file_name = "Image_{0}.{1}"
image_type = image.content_type.split("/")[1]
image_format = get_image_format(image_type)
# save image
image.system_image.save(file_name.format( imageIndex, image_type), image_format)
imageIndex = imageIndex + 1
Извлечение изображений из фигур в PPT
В некоторых случаях может потребоваться извлечь изображения только из фигур в презентации. Итак, давайте посмотрим, как извлекать изображения из фигур в PPT на Python.
- Сначала загрузите презентацию с помощью класса Presentation.
- Затем просмотрите слайды презентации, используя коллекцию Presentation.slides.
- Для каждого слайда получите доступ к его формам, используя коллекцию ISlide.shapes.
- Для каждой фигуры в коллекции выполните следующие шаги:
- Если фигура является автоматической фигурой, а ее тип заливки — изображение, извлеките изображение, используя свойство IShape.fillformat.picturefillformat.picture.image.
- Если фигура является рамкой изображения, извлеките изображение, используя свойство IShape.pictureformat.picture.image.
- Наконец, сохраните изображение как файл.
В следующем примере кода показано, как извлекать изображения из фигур в презентации PPT с помощью Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# load presentation
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# loop through slides
for slide in pres.slides:
slideIndex += 1
image_format = drawing.imaging.ImageFormat.jpeg
file_name = "BackImage_Slide_{0}{1}.{2}"
# loop through shapes in slide
for i in range(len(slide.shapes)):
shape = slide.shapes[i]
shape_image = None
# check is shape is an auto shape or picture frame
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
# save image
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)
Извлечение изображений из фона слайдов в формате PPT
Другим сценарием может быть извлечение изображений, которые используются в качестве фона слайдов. Ниже приведены шаги для извлечения изображений только из фона слайдов в презентации PPT.
- Сначала загрузите презентацию с помощью класса Presentation.
- Затем просмотрите слайды презентации, используя коллекцию Presentation.slides.
- Для каждого слайда выполните следующие действия:
- Проверьте, есть ли у слайда фоновое изображение, используя свойство ISlide.background.fillformat.filltype.
- Если фон имеет изображение, извлеките изображение, используя свойство ISlide.background.fillformat.picturefillformat.picture.image.
- Проверьте, есть ли у слайда макета фоновое изображение, используя свойство ISlide.layoutslide.background.fillformat.filltype.
- Если фон заполнен изображением, извлеките его с помощью свойства ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Наконец, сохраните извлеченное изображение в виде файла.
В следующем примере кода показано, как извлекать изображения из фона слайдов в PPT на Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# load presentation
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# loop through the slides in presentation
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
# check if the slide's and layout slide's backgrounds are filled with picture
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
# save image
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)
Оба приведенных выше примера кода используют метод getimageformat, который возвращает соответствующий формат изображения для предоставленного типа. Реализация этого метода представлена ниже.
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)
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию для использования Aspose.Slides for Python через .NET без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как извлекать изображения из презентаций PowerPoint в Python. Мы также отдельно рассмотрели извлечение изображений из фигур и фонов слайдов. Кроме того, вы можете узнать больше об Aspose.Slides для Python, посетив документацию. Также вы можете задать свои вопросы на нашем форуме.
Смотрите также
- Создание файлов PowerPoint в Python
- Преобразование PPTX в PDF на Python
- Конвертировать PPT в PNG в Python
- PPT/PPTX в HTML на Python
Информация: Aspose предоставляет конвертеры PowerPoint в изображения — PPT в JPG и [PPT в PNG][] — которые позволяют создавать изображения на основе слайдов в презентации.