Obrazy są skutecznym sposobem komunikacji, który ożywia treść. To jest powód, dla którego obrazy są powszechnie stosowane na stronach internetowych, dokumentach, prezentacjach itp. Prezentacje MS PowerPoint są zwykle zbudowane z mniejszej ilości tekstu i większej liczby obiektów graficznych i obrazów. Dlatego podczas programowego przetwarzania prezentacji może być konieczne wyodrębnienie obrazów wraz z tekstem. Aby to osiągnąć, w tym artykule opisano, jak wyodrębnić obrazy z prezentacji PPT lub PPTX w Python.
- Biblioteka Python do wyodrębniania obrazów z prezentacji
- Wyodrębnij obrazy z prezentacji PPTX w Python
- Wyodrębnij obrazy z kształtów
- Ekstrakcja obrazu z tła slajdu
Biblioteka Python do wyodrębniania obrazów z prezentacji
Aby wyodrębnić obrazy z prezentacji PowerPoint, użyjemy Aspose.Slides for Python przez .NET. Jest to potężna biblioteka Python, która została zaprojektowana do tworzenia prezentacji od podstaw. Co więcej, umożliwia bezproblemową konwersję i manipulowanie istniejącymi prezentacjami. Możesz zainstalować go z PyPI za pomocą następującego polecenia pip.
> pip install aspose.slides
Wyodrębnij obrazy z PowerPoint PPT w Python
Poniżej przedstawiono kroki, aby wyodrębnić obrazy z prezentacji PowerPoint w Python.
- Załaduj prezentację za pomocą klasy Presentation.
- Przeglądaj obrazy w prezentacji, korzystając z kolekcji Presentation.images.
- Zapisz każdy obraz jako plik.
Poniższy przykładowy kod pokazuje, jak wyodrębnić obrazy z pliku PPTX w języku Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
imageIndex=1
# prezentacja ładunku
with slides.Presentation("presentation.pptx") as pres:
# przeglądać obrazy w pętli
for image in pres.images:
file_name = "Image_{0}.{1}"
image_type = image.content_type.split("/")[1]
image_format = get_image_format(image_type)
# zapisać obraz
image.system_image.save(file_name.format( imageIndex, image_type), image_format)
imageIndex = imageIndex + 1
Wyodrębnij obrazy z kształtów w PPT
W niektórych przypadkach może być konieczne wyodrębnienie obrazów tylko z kształtów w prezentacji. Zobaczmy więc, jak wyodrębnić obrazy z kształtów w PPT w Python.
- Najpierw załaduj prezentację za pomocą klasy Presentation.
- Następnie przejrzyj slajdy prezentacji, korzystając z kolekcji Presentation.slides.
- Dla każdego slajdu uzyskaj dostęp do jego kształtów za pomocą kolekcji ISlide.shapes.
- Dla każdego kształtu w kolekcji wykonaj następujące czynności:
- Jeśli kształt jest kształtem automatycznym, a jego typem wypełnienia jest obraz, wyodrębnij obraz za pomocą właściwości IShape.fillformat.picturefillformat.picture.image.
- Jeśli kształtem jest ramka obrazu, wyodrębnij obraz za pomocą właściwości IShape.pictureformat.picture.image.
- Na koniec zapisz obraz jako plik.
Poniższy przykładowy kod pokazuje, jak wyodrębnić obrazy z kształtów w prezentacji PPT przy użyciu języka Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# prezentacja ładunku
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# przewijać slajdy
for slide in pres.slides:
slideIndex += 1
image_format = drawing.imaging.ImageFormat.jpeg
file_name = "BackImage_Slide_{0}{1}.{2}"
# pętla przez kształty w slajdzie
for i in range(len(slide.shapes)):
shape = slide.shapes[i]
shape_image = None
# Sprawdź, czy kształt jest automatycznym kształtem lub ramką obrazu
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
# zapisać obraz
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)
Wyodrębnij obrazy z tła slajdów w PPT
Innym scenariuszem może być wyodrębnianie obrazów, które są używane jako tła slajdów. Poniżej przedstawiono kroki, aby wyodrębnić obrazy tylko z tła slajdów w prezentacji PPT.
- Najpierw załaduj prezentację za pomocą klasy Presentation.
- Następnie przejrzyj slajdy prezentacji, korzystając z kolekcji Presentation.slides.
- Dla każdego slajdu wykonaj następujące czynności:
- Sprawdź, czy slajd ma obraz tła za pomocą właściwości ISlide.background.fillformat.filltype.
- Jeśli tło ma obraz, wyodrębnij obraz, używając właściwości ISlide.background.fillformat.picturefillformat.picture.image.
- Sprawdź, czy slajd układu ma obraz tła, używając właściwości ISlide.layoutslide.background.fillformat.filltype.
- Jeśli tło jest wypełnione obrazem, rozpakuj je za pomocą właściwości ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Na koniec zapisz wyodrębniony obraz jako plik.
Poniższy przykładowy kod pokazuje, jak wyodrębnić obrazy z tła slajdów w PPT w Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# prezentacja ładunku
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# przejrzyj slajdy w prezentacji
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
# sprawdź, czy tła slajdu i slajdu układu są wypełnione obrazem
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
# zapisać obraz
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)
Oba powyższe przykłady kodu używają metody getimageformat, która zwraca odpowiedni format obrazu dla podanego typu. Poniżej przedstawiono implementację tej metody.
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)
Uzyskaj bezpłatną licencję
Możesz uzyskać darmową tymczasową licencję, aby używać Aspose.Slides for Python przez .NET bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule nauczyłeś się, jak wyodrębniać obrazy z prezentacji PowerPoint w Python. Omówiliśmy również wyodrębnianie obrazów z kształtów i tła slajdów osobno. Poza tym możesz dowiedzieć się więcej o Aspose.Slides for Python, odwiedzając dokumentację. Możesz także zadawać pytania za pośrednictwem naszego forum.
Zobacz też
- Twórz pliki PowerPoint w Python
- Konwertuj PPTX na PDF w Python
- Konwertuj PPT na PNG w Python
- PPT/PPTX do HTML w Python
Informacje: Aspose zapewnia konwertery PowerPoint na obrazy — PPT na JPG i [PPT na PNG][] — które umożliwiają generowanie obrazów na podstawie slajdów w prezentacji.