แยกรูปภาพจากงานนำเสนอ PowerPoint ใน Python

รูปภาพเป็นวิธีการสื่อสารที่มีประสิทธิภาพซึ่งทำให้เนื้อหามีชีวิตชีวา นี่คือเหตุผลที่รูปภาพถูกนำมาใช้อย่างแพร่หลายในเว็บเพจ เอกสาร งานนำเสนอ ฯลฯ งานนำเสนอ MS PowerPoint มักจะสร้างขึ้นโดยมีข้อความน้อยลงและมีวัตถุและรูปภาพกราฟิกมากขึ้น ดังนั้น เมื่อประมวลผลงานนำเสนอโดยทางโปรแกรม คุณอาจต้องแยกรูปภาพพร้อมกับข้อความ บทความนี้ครอบคลุมวิธีแยกรูปภาพจากงานนำเสนอ PPT หรือ PPTX ใน Python

Python Library เพื่อแยกรูปภาพออกจากงานนำเสนอ

ในการดึงภาพจากงานนำเสนอ PowerPoint เราจะใช้ Aposose.Slides for Python via .NET เป็นไลบรารี Python อันทรงพลังที่ออกแบบมาเพื่อสร้างงานนำเสนอตั้งแต่เริ่มต้น นอกจากนี้ยังช่วยให้คุณสามารถแปลงและจัดการงานนำเสนอที่มีอยู่ได้อย่างราบรื่น คุณสามารถติดตั้งได้จาก PyPI โดยใช้คำสั่ง pip ต่อไปนี้

> pip install aspose.slides

แยกรูปภาพจาก PowerPoint PPT ใน Python

ต่อไปนี้เป็นขั้นตอนในการแยกรูปภาพจากงานนำเสนอ PowerPoint ใน Python

  • โหลดงานนำเสนอโดยใช้คลาสการนำเสนอ
  • วนซ้ำรูปภาพในงานนำเสนอโดยใช้คอลเลกชัน Presentation.images
  • บันทึกแต่ละภาพเป็นไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกรูปภาพจากไฟล์ PPTX ใน Python

import aspose.slides as slides
import aspose.pydrawing as drawing

imageIndex=1
# โหลดงานนำเสนอ
with slides.Presentation("presentation.pptx") as pres:

    # วนซ้ำภาพ
   for image in pres.images:
        file_name = "Image_{0}.{1}"
        image_type = image.content_type.split("/")[1]
        image_format = get_image_format(image_type)

        # บันทึกภาพ
        image.system_image.save(file_name.format( imageIndex, image_type), image_format)
        imageIndex = imageIndex + 1

แยกรูปภาพออกจากรูปร่างใน PPT

ในบางกรณี คุณอาจต้องแยกรูปภาพออกจากรูปร่างในงานนำเสนอเท่านั้น มาดูวิธีการแยกรูปภาพออกจากรูปร่างใน PPT ใน Python

  • ขั้นแรก ให้โหลดงานนำเสนอโดยใช้คลาสการนำเสนอ
  • จากนั้น วนซ้ำสไลด์ของงานนำเสนอโดยใช้คอลเลกชัน Presentation.slides
  • สำหรับแต่ละสไลด์ ให้เข้าถึงรูปร่างของสไลด์โดยใช้คอลเลกชัน ISlide.shapes
  • สำหรับแต่ละรูปร่างในคอลเลกชัน ให้ทำตามขั้นตอนต่อไปนี้:
    • หากรูปร่างเป็นรูปร่างอัตโนมัติและประเภทเติมคือรูปภาพ ให้แยกรูปภาพโดยใช้คุณสมบัติ IShape.fillformat.picturefillformat.picture.image
    • หากรูปร่างเป็นกรอบรูป ให้แยกรูปภาพโดยใช้คุณสมบัติ IShape.pictureformat.picture.image
    • สุดท้ายบันทึกภาพเป็นไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกรูปภาพจากรูปร่างในงานนำเสนอ PPT โดยใช้ Python

import aspose.slides as slides
import aspose.pydrawing as drawing

# โหลดงานนำเสนอ
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # วนซ้ำผ่านสไลด์
   for slide in pres.slides:
        slideIndex += 1
        image_format = drawing.imaging.ImageFormat.jpeg
        file_name = "BackImage_Slide_{0}{1}.{2}"
      
        # วนซ้ำรูปร่างในสไลด์
       for i in range(len(slide.shapes)):
            shape = slide.shapes[i]
            shape_image = None

            # ตรวจสอบรูปร่างเป็นรูปร่างอัตโนมัติหรือกรอบรูป
            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

            # บันทึกภาพ
            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)

แยกรูปภาพออกจากพื้นหลังสไลด์ใน PPT

อีกสถานการณ์หนึ่งอาจเป็นการแยกรูปภาพที่ใช้เป็นพื้นหลังของสไลด์ ต่อไปนี้เป็นขั้นตอนในการแยกรูปภาพออกจากพื้นหลังสไลด์ในงานนำเสนอ PPT เท่านั้น

  • ขั้นแรก ให้โหลดงานนำเสนอโดยใช้คลาสการนำเสนอ
  • จากนั้น วนซ้ำสไลด์ของงานนำเสนอโดยใช้คอลเลกชัน Presentation.slides
  • สำหรับแต่ละสไลด์ ให้ทำตามขั้นตอนต่อไปนี้:
    • ตรวจสอบว่าสไลด์มีภาพพื้นหลังหรือไม่โดยใช้คุณสมบัติ ISlide.background.fillformat.filltype
    • หากพื้นหลังมีรูปภาพ ให้แยกรูปภาพโดยใช้คุณสมบัติ ISlide.background.fillformat.picturefillformat.picture.image
    • ตรวจสอบว่าสไลด์เค้าโครงมีภาพพื้นหลังโดยใช้คุณสมบัติ ISlide.layoutslide.background.fillformat.filltype
    • หากพื้นหลังเต็มไปด้วยรูปภาพ ให้แตกโดยใช้คุณสมบัติ ISlide.layoutslide.background.fillformat.picturefillformat.picture.image
    • สุดท้าย บันทึกภาพที่แยกออกมาเป็นไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกรูปภาพจากพื้นหลังสไลด์ใน PPT ใน Python

import aspose.slides as slides
import aspose.pydrawing as drawing

# โหลดงานนำเสนอ
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # วนซ้ำสไลด์ในงานนำเสนอ
   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

        # ตรวจสอบว่าพื้นหลังของสไลด์และเค้าโครงของสไลด์เต็มไปด้วยรูปภาพหรือไม่
        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

        # บันทึกภาพ
        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)

ตัวอย่างโค้ดทั้งสองด้านบนใช้วิธี getimageformat ซึ่งจะส่งคืนรูปแบบรูปภาพที่เหมาะสมสำหรับประเภทที่ให้มา การนำวิธีการดังกล่าวไปใช้ด้านล่าง

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)

รับใบอนุญาตฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อใช้ Aspose.Slides for Python ผ่าน .NET โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแยกรูปภาพจากงานนำเสนอ PowerPoint ใน Python เราได้กล่าวถึงการแยกรูปภาพออกจากรูปร่างและพื้นหลังของสไลด์แยกกันด้วย นอกจากนี้ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Slides for Python ได้โดยไปที่ เอกสารประกอบ นอกจากนี้ คุณสามารถถามคำถามของคุณผ่าน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย

ข้อมูล: Aspose ให้บริการโปรแกรมแปลง PowerPoint เป็นรูปภาพ — PPT เป็น JPG และ [PPT เป็น PNG][] — ที่ให้คุณสร้างรูปภาพตามสไลด์ในงานนำเสนอ