Hình ảnh là cách truyền thông hiệu quả giúp nội dung trở nên sinh động. Đây là lý do tại sao hình ảnh được sử dụng rộng rãi trong các trang web, tài liệu, bản trình bày, v.v. Bản trình bày MS PowerPoint thường được xây dựng với ít văn bản hơn và nhiều đối tượng đồ họa và hình ảnh hơn. Do đó, khi xử lý các bản trình bày theo chương trình, bạn có thể cần trích xuất hình ảnh cùng với văn bản. Để thực hiện điều đó, bài viết này trình bày cách trích xuất hình ảnh từ các bản trình bày PPT hoặc PPTX bằng Python.
- Thư viện Python để trích xuất hình ảnh từ bản trình bày
- Trích xuất hình ảnh từ bản trình bày PPTX bằng Python
- Trích xuất hình ảnh từ hình dạng
- Trích xuất hình ảnh từ nền trang trình bày
Thư viện Python để trích xuất hình ảnh từ bản trình bày
Để trích xuất hình ảnh từ bản trình bày PowerPoint, chúng tôi sẽ sử dụng Aspose.Slides for Python qua .NET. Đây là một thư viện Python mạnh mẽ được thiết kế để tạo bản trình bày từ đầu. Hơn nữa, nó cho phép bạn chuyển đổi và thao tác liền mạch với các bài thuyết trình hiện có. Bạn có thể cài đặt nó từ PyPI bằng lệnh pip sau.
> pip install aspose.slides
Trích xuất hình ảnh từ PowerPoint PPT bằng Python
Sau đây là các bước để trích xuất hình ảnh từ bản trình bày PowerPoint bằng Python.
- Tải bản trình bày bằng lớp Trình bày.
- Lặp lại các hình ảnh trong bản trình bày bằng bộ sưu tập Presentation.images.
- Lưu từng hình ảnh dưới dạng tệp.
Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ tệp PPTX bằng Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
imageIndex=1
# tải bản trình bày
with slides.Presentation("presentation.pptx") as pres:
# lặp qua hình ảnh
for image in pres.images:
file_name = "Image_{0}.{1}"
image_type = image.content_type.split("/")[1]
image_format = get_image_format(image_type)
# lưu hình ảnh
image.system_image.save(file_name.format( imageIndex, image_type), image_format)
imageIndex = imageIndex + 1
Trích xuất hình ảnh từ hình dạng trong một PPT
Trong một số trường hợp nhất định, bạn có thể chỉ cần trích xuất hình ảnh từ các hình dạng trong bản trình bày. Vì vậy, chúng ta hãy xem cách trích xuất hình ảnh từ các hình dạng trong PPT bằng Python.
- Đầu tiên, tải bản trình bày bằng lớp Trình bày.
- Sau đó, lặp qua các trang trình bày bằng bộ sưu tập Presentation.slides.
- Đối với mỗi trang trình bày, hãy truy cập các hình dạng của nó bằng bộ sưu tập ISlide.shapes.
- Đối với mỗi hình dạng trong bộ sưu tập, hãy thực hiện các bước sau:
- Nếu hình dạng là một hình dạng tự động và kiểu tô của nó là hình ảnh thì hãy trích xuất hình ảnh bằng cách sử dụng thuộc tính IShape.fillformat.picturefillformat.picture.image.
- Nếu hình dạng là một khung ảnh thì trích xuất hình ảnh bằng thuộc tính IShape.pictureformat.picture.image.
- Cuối cùng, lưu hình ảnh dưới dạng tệp.
Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ các hình dạng trong bản trình bày PPT bằng Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# tải bản trình bày
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# vòng qua các trang trình bày
for slide in pres.slides:
slideIndex += 1
image_format = drawing.imaging.ImageFormat.jpeg
file_name = "BackImage_Slide_{0}{1}.{2}"
# lặp qua các hình dạng trong trang trình bày
for i in range(len(slide.shapes)):
shape = slide.shapes[i]
shape_image = None
# kiểm tra xem hình dạng có phải là hình dạng tự động hay khung ảnh không
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
# lưu hình ảnh
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)
Trích xuất hình ảnh từ nền trang trình bày trong PPT
Một kịch bản khác có thể là trích xuất các hình ảnh được sử dụng làm hình nền trang chiếu. Sau đây là các bước để chỉ trích xuất hình ảnh từ nền trang chiếu trong bản trình bày PPT.
- Đầu tiên, tải bản trình bày bằng lớp Trình bày.
- Sau đó, lặp qua các trang trình bày bằng bộ sưu tập Presentation.slides.
- Đối với mỗi trang trình bày, hãy thực hiện các bước sau:
- Kiểm tra xem trang chiếu có hình nền hay không bằng cách sử dụng thuộc tính ISlide.background.fillformat.filltype.
- Nếu nền có hình ảnh thì trích xuất hình ảnh bằng thuộc tính ISlide.background.fillformat.picturefillformat.picture.image.
- Kiểm tra xem trang chiếu bố cục có hình nền hay không bằng cách sử dụng thuộc tính ISlide.layoutslide.background.fillformat.filltype.
- Nếu hình nền được lấp đầy thì hãy giải nén nó bằng thuộc tính ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
- Cuối cùng, lưu hình ảnh đã trích xuất dưới dạng tệp.
Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ nền trang trình bày trong PPT bằng Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
# tải bản trình bày
with slides.Presentation("pres.pptx") as pres:
slideIndex = 0
image_type = ""
# lặp qua các trang trình bày trong bản trình bày
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
# kiểm tra xem nền của trang trình bày và bố cục của trang trình bày có được lấp đầy bằng hình ảnh hay không
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
# lưu hình ảnh
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)
Cả hai mẫu mã trên đều sử dụng một phương pháp getimageformat, trả về định dạng hình ảnh thích hợp cho loại được cung cấp. Việc thực hiện phương pháp đó được cung cấp bên dưới.
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)
Nhận giấy phép miễn phí
Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.Slides for Python qua .NET mà không có giới hạn đánh giá.
Sự kết luận
Trong bài viết này, bạn đã học cách trích xuất hình ảnh từ bản trình bày PowerPoint bằng Python. Chúng tôi cũng đã đề cập đến việc trích xuất hình ảnh từ các hình dạng và hình nền trang trình bày một cách riêng biệt. Bên cạnh đó, bạn có thể khám phá thêm về Aspose.Slides for Python bằng cách truy cập tài liệu. Ngoài ra, bạn có thể đặt câu hỏi của mình qua diễn đàn của chúng tôi.
Xem thêm
- Tạo tệp PowerPoint bằng Python
- Chuyển đổi PPTX sang PDF bằng Python
- Chuyển đổi PPT sang PNG bằng Python
- PPT / PPTX sang HTML bằng Python
Thông tin: Aspose cung cấp trình chuyển đổi PowerPoint sang hình ảnh - PPT sang JPG và [PPT sang PNG] [] - cho phép bạn tạo hình ảnh dựa trên các trang trình bày trong bản trình bày.