
Le immagini sono un mezzo di comunicazione efficace che rende vivo il contenuto. Questo è il motivo per cui le immagini sono ampiamente adottate in pagine Web, documenti, presentazioni, ecc. Le presentazioni MS PowerPoint sono generalmente costruite con meno testo e più oggetti e immagini grafici. Pertanto, quando si elaborano le presentazioni a livello di codice, potrebbe essere necessario estrarre le immagini insieme al testo. A tal fine, questo articolo spiega come estrarre immagini da presentazioni PPT o PPTX in Python.
- Libreria Python per estrarre immagini dalle presentazioni
- Estrai immagini da una presentazione PPTX in Python
- Estrai immagini dalle forme
- Estrazione dell’immagine dallo sfondo della diapositiva
Libreria Python per estrarre immagini dalle presentazioni
Per estrarre immagini dalle presentazioni PowerPoint, utilizzeremo Aspose.Slides for Python via .NET. È una potente libreria Python progettata per creare presentazioni da zero. Inoltre, ti consente di convertire e manipolare le presentazioni esistenti senza problemi. Puoi installarlo da PyPI usando il seguente comando pip.
> pip install aspose.slides
Estrai immagini da un PPT di PowerPoint in Python
Di seguito sono riportati i passaggi per estrarre immagini da una presentazione PowerPoint in Python.
- Carica la presentazione utilizzando la classe Presentation.
- Scorri le immagini nella presentazione utilizzando la raccolta Presentation.images.
- Salva ogni immagine come file.
L’esempio di codice seguente mostra come estrarre immagini da un file PPTX in 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
Estrai immagini dalle forme in un PPT
In alcuni casi, potrebbe essere necessario estrarre le immagini solo dalle forme in una presentazione. Vediamo quindi come estrarre immagini dalle forme in un PPT in Python.
- Innanzitutto, carica la presentazione utilizzando la classe Presentation.
- Quindi, scorrere le diapositive della presentazione utilizzando la raccolta Presentation.slides.
- Per ogni diapositiva, accedi alle sue forme utilizzando la raccolta ISlide.shapes.
- Per ogni forma nella raccolta, eseguire i seguenti passaggi:
- Se la forma è una forma automatica e il tipo di riempimento è un’immagine, estrai l’immagine utilizzando la proprietà IShape.fillformat.picturefillformat.picture.image.
- Se la forma è una cornice immagine, estrarre l’immagine utilizzando la proprietà IShape.pictureformat.picture.image.
- Infine, salva l’immagine come file.
L’esempio di codice seguente mostra come estrarre immagini dalle forme in una presentazione PPT usando 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)
Estrai le immagini dagli sfondi delle diapositive in un PPT
Un altro scenario potrebbe essere l’estrazione delle immagini utilizzate come sfondi delle diapositive. Di seguito sono riportati i passaggi per estrarre le immagini solo dagli sfondi delle diapositive in una presentazione PPT.
- Innanzitutto, carica la presentazione utilizzando la classe Presentation.
- Quindi, scorrere le diapositive della presentazione utilizzando la raccolta Presentation.slides.
- Per ogni diapositiva, attenersi alla seguente procedura:
- Verifica se la diapositiva ha un’immagine di sfondo utilizzando la proprietà ISlide.background.fillformat.filltype.
- Se lo sfondo ha un’immagine, estrai l’immagine utilizzando la proprietà ISlide.background.fillformat.picturefillformat.picture.image.
- Verifica se la diapositiva del layout ha un’immagine di sfondo utilizzando la proprietà ISlide.layoutslide.background.fillformat.filltype.
- Se lo sfondo è riempito con un’immagine, estrarla utilizzando la proprietà ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Infine, salva l’immagine estratta come file.
L’esempio di codice seguente mostra come estrarre immagini dagli sfondi delle diapositive in un PPT in 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)
Entrambi gli esempi di codice precedenti utilizzano un metodo getimageformat, che restituisce il formato immagine appropriato per il tipo fornito. L’attuazione di tale metodo è fornita di seguito.
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)
Ottieni una licenza gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Slides per Python tramite .NET senza limitazioni di valutazione.
Conclusione
In questo articolo hai imparato come estrarre immagini da presentazioni PowerPoint in Python. Abbiamo anche trattato l’estrazione di immagini da forme e sfondi di diapositive separatamente. Inoltre, puoi esplorare di più su Aspose.Slides per Python visitando la documentazione. Inoltre, puoi porre le tue domande tramite il nostro forum.
Guarda anche
- Crea file PowerPoint in Python
- Converti PPTX in PDF in Python
- Converti PPT in PNG in Python
- PPT/PPTX in HTML in Python
Informazioni: Aspose fornisce convertitori da PowerPoint a immagini — PPT in JPG e [PPT in PNG][] — che consentono di generare immagini basate su diapositive in una presentazione.