As imagens são uma forma eficaz de comunicação que torna o conteúdo animado. Esta é a razão pela qual as imagens são amplamente adotadas em páginas da web, documentos, apresentações, etc. As apresentações do MS PowerPoint geralmente são construídas com menos texto e mais objetos gráficos e imagens. Portanto, ao processar as apresentações programaticamente, talvez seja necessário extrair imagens junto com o texto. Para fazer isso, este artigo aborda como extrair imagens de apresentações PPT ou PPTX em Python.
- Biblioteca Python para extrair imagens de apresentações
- Extrair imagens de uma apresentação PPTX em Python
- Extrair imagens de formas
- Extração de imagem do plano de fundo do slide
Biblioteca Python para extrair imagens de apresentações
Para extrair imagens de apresentações do PowerPoint, usaremos Aspose.Slides for Python via .NET. É uma poderosa biblioteca Python projetada para criar apresentações do zero. Além disso, permite converter e manipular as apresentações existentes sem problemas. Você pode instalá-lo de PyPI usando o seguinte comando pip.
> pip install aspose.slides
Extrair imagens de um PowerPoint PPT em Python
A seguir estão as etapas para extrair imagens de uma apresentação do PowerPoint em Python.
- Carregue a apresentação usando a classe Apresentação.
- Percorra as imagens na apresentação usando a coleção Presentation.images.
- Salve cada imagem como um arquivo.
O exemplo de código a seguir mostra como extrair imagens de um arquivo PPTX em Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
imageIndex=1
# apresentação de carga
with slides.Presentation("presentation.pptx") as pres:
# percorrer as imagens
for image in pres.images:
file_name = "Image_{0}.{1}"
image_type = image.content_type.split("/")[1]
image_format = get_image_format(image_type)
# salvar imagem
image.system_image.save(file_name.format( imageIndex, image_type), image_format)
imageIndex = imageIndex + 1
Extrair imagens de formas em um PPT
Em alguns casos, pode ser necessário extrair imagens apenas das formas em uma apresentação. Então vamos ver como extrair imagens de formas em um PPT em Python.
- Primeiro, carregue a apresentação usando a classe Presentation.
- Em seguida, percorra os slides da apresentação usando a coleção Presentation.slides.
- Para cada slide, acesse suas formas usando a coleção ISlide.shapes.
- Para cada forma na coleção, execute as seguintes etapas:
- Se a forma for uma forma automática e seu tipo de preenchimento for imagem, extraia a imagem usando a propriedade IShape.fillformat.picturefillformat.picture.image.
- Se a forma for uma moldura de imagem, extraia a imagem usando a propriedade IShape.pictureformat.picture.image.
- Por fim, salve a imagem como um arquivo.
O exemplo de código a seguir mostra como extrair imagens de formas em uma apresentação PPT usando Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# apresentação de carga
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# percorrer os slides
for slide in pres.slides:
slideIndex += 1
image_format = drawing.imaging.ImageFormat.jpeg
file_name = "BackImage_Slide_{0}{1}.{2}"
# percorrer as formas no slide
for i in range(len(slide.shapes)):
shape = slide.shapes[i]
shape_image = None
# check is shape é uma forma automática ou moldura de imagem
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
# salvar imagem
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)
Extraia imagens de fundos de slides em um PPT
Outro cenário pode ser extrair as imagens que são usadas como plano de fundo dos slides. A seguir estão as etapas para extrair imagens apenas de fundos de slides em uma apresentação PPT.
- Primeiro, carregue a apresentação usando a classe Presentation.
- Em seguida, percorra os slides da apresentação usando a coleção Presentation.slides.
- Para cada slide, execute as seguintes etapas:
- Verifique se o slide tem uma imagem de fundo usando a propriedade ISlide.background.fillformat.filltype.
- Se o fundo tiver imagem, extraia a imagem usando a propriedade ISlide.background.fillformat.picturefillformat.picture.image.
- Verifique se o slide de layout tem imagem de fundo usando a propriedade ISlide.layoutslide.background.fillformat.filltype.
- Se o plano de fundo estiver preenchido com uma imagem, extraia-o usando a propriedade ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Por fim, salve a imagem extraída como um arquivo.
O exemplo de código a seguir mostra como extrair imagens de planos de fundo de slide em um PPT em Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# apresentação de carga
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# percorrer os slides na apresentação
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
# verifique se os fundos do slide e do slide de layout estão preenchidos com imagem
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
# salvar imagem
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)
Ambos os exemplos de código acima usam um método getimageformat, que retorna o formato de imagem apropriado para o tipo fornecido. A implementação desse método é fornecida abaixo.
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)
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para usar o Aspose.Slides for Python via .NET sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como extrair imagens de apresentações do PowerPoint em Python. Também abordamos a extração de imagens de formas e fundos de slides separadamente. Além disso, você pode explorar mais sobre o Aspose.Slides for Python visitando a documentação. Além disso, você pode fazer suas perguntas através do nosso fórum.
Veja também
- Criar arquivos do PowerPoint em Python
- Converter PPTX para PDF em Python
- Converter PPT para PNG em Python
- PPT/PPTX para HTML em Python
Informações: O Aspose fornece conversores de PowerPoint para imagens — PPT para JPG e [PPT para PNG][] — que permitem gerar imagens com base em slides em uma apresentação.