Bilder är ett effektivt sätt att kommunicera som gör innehållet levande. Detta är anledningen till att bilderna används allmänt i webbsidor, dokument, presentationer etc. MS PowerPoint-presentationer är vanligtvis uppbyggda med mindre text och mer grafiska objekt och bilder. När du bearbetar presentationerna programmatiskt kan du därför behöva extrahera bilder tillsammans med texten. För att åstadkomma det täcker den här artikeln hur man extraherar bilder från PPT eller PPTX presentationer i Python.
- Python Library för att extrahera bilder från presentationer
- Extrahera bilder från en PPTX-presentation i Python
- Extrahera bilder från former
- Bildextraktion från bildbakgrund
Python Library för att extrahera bilder från presentationer
För att extrahera bilder från PowerPoint-presentationer kommer vi att använda Aspose.Slides for Python via .NET. Det är ett kraftfullt Python-bibliotek som är designat för att skapa presentationer från grunden. Dessutom låter det dig konvertera och manipulera befintliga presentationer sömlöst. Du kan installera det från PyPI med följande pip-kommando.
> pip install aspose.slides
TIPS: Förutom att extrahera bilder från presentationer, låter Aspose.Slides dig extrahera [bilder från PDF](https ://products.aspose.com/slides/python-net/conversion/pdf-to-image/) dokument, konvertera [HTML-filer till bilder](https://products.aspose.com/slides/python-net/ conversion/html-to-image/), etc. Med Aspose.Slides kan du konvertera PDF till JPG, konvertera PDF till HTML, konvertera [PDF till XML](https://products.aspose. com/slides/python-net/conversion/pdf-to-xml/), konvertera PDF till SVG , konvertera PDF till TIFF och utföra relaterade uppgifter.
Extrahera bilder från en PowerPoint PPT i Python
Följande är stegen för att extrahera bilder från en PowerPoint-presentation i Python.
- Ladda presentationen med presentationsklassen.
- Gå igenom bilderna i presentationen med Presentation.images-samlingen.
- Spara varje bild som en fil.
Följande kodexempel visar hur man extraherar bilder från en PPTX-fil i Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
imageIndex=1
# ladda presentationen
with slides.Presentation("presentation.pptx") as pres:
# gå igenom bilder
for image in pres.images:
file_name = "Image_{0}.{1}"
image_type = image.content_type.split("/")[1]
image_format = get_image_format(image_type)
# spara bild
image.system_image.save(file_name.format( imageIndex, image_type), image_format)
imageIndex = imageIndex + 1
Extrahera bilder från former i en PPT
I vissa fall kan du behöva extrahera bilder endast från formerna i en presentation. Så låt oss se hur man extraherar bilder från former i en PPT i Python.
- Ladda först presentationen med presentationsklassen.
- Gå sedan igenom presentationsbilderna med Presentation.slides-samlingen.
- För varje bild kommer du åt dess former med ISlide.shapes-samlingen.
- Utför följande steg för varje form i samlingen:
- Om formen är en automatisk form och dess fyllningstyp är bild, extrahera bilden med egenskapen IShape.fillformat.picturefillformat.picture.image.
- Om formen är en bildram, extrahera bilden med hjälp av egenskapen IShape.pictureformat.picture.image.
- Slutligen sparar du bilden som en fil.
Följande kodexempel visar hur man extraherar bilder från former i en PPT-presentation med Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# ladda presentationen
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# slinga genom diabilder
for slide in pres.slides:
slideIndex += 1
image_format = drawing.imaging.ImageFormat.jpeg
file_name = "BackImage_Slide_{0}{1}.{2}"
# slinga genom former i glid
for i in range(len(slide.shapes)):
shape = slide.shapes[i]
shape_image = None
# check is shape är en automatisk form eller bildram
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
# spara bild
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)
Extrahera bilder från bildbakgrunder i en PPT
Ett annat scenario kan vara att extrahera bilderna som används som bildbakgrunder. Följande är stegen för att extrahera bilder endast från bildbakgrunder i en PPT-presentation.
- Ladda först presentationen med presentationsklassen.
- Gå sedan igenom presentationsbilderna med Presentation.slides-samlingen.
- Utför följande steg för varje bild:
- Kontrollera om bilden har en bakgrundsbild med egenskapen ISlide.background.fillformat.filltype.
- Om bakgrunden har bild, extrahera bilden med hjälp av egenskapen ISlide.background.fillformat.picturefillformat.picture.image.
- Kontrollera om layoutbilden har en bakgrundsbild med egenskapen ISlide.layoutslide.background.fillformat.filltype.
- Om bakgrunden är fylld med en bild, extrahera den med hjälp av egenskapen ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Slutligen, spara den extraherade bilden som en fil.
Följande kodexempel visar hur man extraherar bilder från bildbakgrunder i en PPT i Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# ladda presentationen
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# gå igenom bilderna i presentationen
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
# kontrollera om bildens och layoutbildens bakgrunder är fyllda med bild
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
# spara bild
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)
Båda ovanstående kodexempel använder en metod getimageformat, som returnerar lämpligt bildformat för den angivna typen. Implementeringen av den metoden ges nedan.
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)
Skaffa en gratis licens
Du kan få en gratis temporär licens för att använda Aspose.Slides för Python via .NET utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har du lärt dig hur du extraherar bilder från PowerPoint-presentationer i Python. Vi har också behandlat extrahering av bilder från former och bildbakgrunder separat. Dessutom kan du utforska mer om Aspose.Slides för Python genom att besöka dokumentationen. Du kan också ställa dina frågor via vårt forum.
Se även
- Skapa PowerPoint-filer i Python
- Konvertera PPTX till PDF i Python
- Konvertera PPT till PNG i Python
- PPT/PPTX till HTML i Python
Info: Aspose tillhandahåller PowerPoint till bildkonverterare – PPT till JPG och [PPT till PNG][] – som låter dig skapa bilder baserade på bilder i en presentation.