Les images sont un moyen de communication efficace qui rend le contenu vivant. C’est la raison pour laquelle les images sont largement adoptées dans les pages Web, les documents, les présentations, etc. Les présentations MS PowerPoint sont généralement construites avec moins de texte et plus d’objets graphiques et d’images. Par conséquent, lors du traitement des présentations par programmation, vous devrez peut-être extraire des images avec le texte. Pour ce faire, cet article explique comment extraire des images de présentations PPT ou PPTX en Python.
- Bibliothèque Python pour extraire des images de présentations
- Extraire des images d’une présentation PPTX en Python
- Extraire des images à partir de formes
- Extraction d’image à partir de l’arrière-plan de la diapositive
Bibliothèque Python pour extraire des images de présentations
Pour extraire des images de présentations PowerPoint, nous utiliserons Aspose.Slides for Python via .NET. Il s’agit d’une puissante bibliothèque Python conçue pour créer des présentations à partir de zéro. De plus, il vous permet de convertir et de manipuler les présentations existantes de manière transparente. Vous pouvez l’installer à partir de PyPI en utilisant la commande pip suivante.
> pip install aspose.slides
Extraire des images d’un PPT PowerPoint en Python
Voici les étapes pour extraire des images d’une présentation PowerPoint en Python.
- Chargez la présentation à l’aide de la classe Presentation.
- Parcourez les images dans la présentation à l’aide de la collection Presentation.images.
- Enregistrez chaque image dans un fichier.
L’exemple de code suivant montre comment extraire des images d’un fichier PPTX en 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
Extraire des images de formes dans un PPT
Dans certains cas, vous devrez peut-être extraire des images uniquement à partir des formes d’une présentation. Voyons donc comment extraire des images de formes dans un PPT en Python.
- Tout d’abord, chargez la présentation à l’aide de la classe Presentation.
- Ensuite, parcourez les diapositives de la présentation à l’aide de la collection Presentation.slides.
- Pour chaque diapositive, accédez à ses formes à l’aide de la collection ISlide.shapes.
- Pour chaque forme de la collection, procédez comme suit :
- Si la forme est une forme automatique et que son type de remplissage est une image, extrayez l’image à l’aide de la propriété IShape.fillformat.picturefillformat.picture.image.
- Si la forme est un cadre d’image, extrayez l’image à l’aide de la propriété IShape.pictureformat.picture.image.
- Enfin, enregistrez l’image en tant que fichier.
L’exemple de code suivant montre comment extraire des images de formes dans une présentation PPT à l’aide de 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)
Extraire des images d’arrière-plans de diapositives dans un PPT
Un autre scénario pourrait consister à extraire les images utilisées comme arrière-plan de diapositive. Voici les étapes pour extraire des images uniquement à partir d’arrière-plans de diapositives dans une présentation PPT.
- Tout d’abord, chargez la présentation à l’aide de la classe Presentation.
- Ensuite, parcourez les diapositives de la présentation à l’aide de la collection Presentation.slides.
- Pour chaque diapositive, effectuez les étapes suivantes :
- Vérifiez si la diapositive a une image d’arrière-plan à l’aide de la propriété ISlide.background.fillformat.filltype.
- Si l’arrière-plan a une image, extrayez l’image à l’aide de la propriété ISlide.background.fillformat.picturefillformat.picture.image.
- Vérifiez si la diapositive de mise en page a une image d’arrière-plan à l’aide de la propriété ISlide.layoutslide.background.fillformat.filltype.
- Si l’arrière-plan est rempli d’une image, extrayez-la à l’aide de la propriété ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Enfin, enregistrez l’image extraite en tant que fichier.
L’exemple de code suivant montre comment extraire des images d’arrière-plans de diapositives dans un PPT en 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)
Les deux exemples de code ci-dessus utilisent une méthode getimageformat, qui renvoie le format d’image approprié pour le type fourni. La mise en œuvre de cette méthode est présentée ci-dessous.
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)
Obtenez une licence gratuite
Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Slides for Python via .NET sans limitations d’évaluation.
Conclusion
Dans cet article, vous avez appris à extraire des images de présentations PowerPoint en Python. Nous avons également couvert l’extraction d’images à partir de formes et d’arrière-plans de diapositives séparément. En outre, vous pouvez en savoir plus sur Aspose.Slides for Python en visitant la documentation. Vous pouvez également poser vos questions via notre forum.
Voir également
- Créer des fichiers PowerPoint en Python
- Convertir PPTX en PDF en Python
- Convertir PPT en PNG en Python
- PPT/PPTX vers HTML en Python
Info : Aspose fournit des convertisseurs PowerPoint en images — PPT en JPG et [PPT en PNG][] — qui vous permettent de générer des images basées sur des diapositives dans une présentation.