استخراج تصاویر از ارائه های پاورپوینت در پایتون

تصاویر راه ارتباطی موثری هستند که محتوا را زنده می کند. به همین دلیل است که تصاویر به طور گسترده در صفحات وب، اسناد، ارائه ها و غیره مورد استفاده قرار می گیرند. ارائه های پاورپوینت MS معمولاً با متن کمتر و اشیاء و تصاویر گرافیکی بیشتر ساخته می شوند. بنابراین، هنگام پردازش برنامه ها، ممکن است نیاز به استخراج تصاویر همراه با متن داشته باشید. برای انجام این کار، این مقاله نحوه استخراج تصاویر از PPT یا PPTX ارائه در پایتون را پوشش می‌دهد.

کتابخانه پایتون برای استخراج تصاویر از ارائه ها

برای استخراج تصاویر از ارائه های پاورپوینت، از Aspose.Slides for Python via .NET استفاده می کنیم. این یک کتابخانه قدرتمند پایتون است که برای ایجاد ارائه از ابتدا طراحی شده است. علاوه بر این، به شما امکان می دهد ارائه های موجود را به صورت یکپارچه تبدیل و دستکاری کنید. با استفاده از دستور pip زیر می توانید آن را از PyPI نصب کنید.

> pip install aspose.slides

استخراج تصاویر از پاورپوینت PPT در پایتون

در زیر مراحل استخراج تصاویر از ارائه پاورپوینت در پایتون آمده است.

  • ارائه را با استفاده از کلاس Presentation بارگیری کنید.
  • با استفاده از مجموعه Presentation.images، تصاویر را در ارائه حلقه بزنید.
  • هر تصویر را به عنوان یک فایل ذخیره کنید.

نمونه کد زیر نحوه استخراج تصاویر از یک فایل PPTX در پایتون را نشان می دهد.

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

استخراج تصاویر از Shapes در PPT

در موارد خاص، ممکن است لازم باشد تصاویر را فقط از اشکال موجود در یک ارائه استخراج کنید. بنابراین بیایید ببینیم که چگونه تصاویر را از اشکال در یک PPT در پایتون استخراج کنیم.

  • ابتدا ارائه را با استفاده از کلاس Presentation بارگذاری کنید.
  • سپس اسلایدهای ارائه را با استفاده از مجموعه Presentation.slides حلقه بزنید.
  • برای هر اسلاید، با استفاده از مجموعه ISlide.shapes به اشکال آن دسترسی پیدا کنید.
  • برای هر شکل در مجموعه، مراحل زیر را انجام دهید:
    • اگر شکل یک شکل خودکار و نوع پر کردن آن تصویر است، با استفاده از ویژگی IShape.fillformat.picturefillformat.picture.image تصویر را استخراج کنید.
    • اگر شکل یک قاب عکس است، با استفاده از ویژگی IShape.pictureformat.picture.image تصویر را استخراج کنید.
    • در نهایت تصویر را به صورت فایل ذخیره کنید.

نمونه کد زیر نحوه استخراج تصاویر از اشکال در ارائه PPT با استفاده از پایتون را نشان می دهد.

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

            # چک is shape یک شکل خودکار یا قاب عکس است
            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 بارگذاری کنید.
  • سپس اسلایدهای ارائه را با استفاده از مجموعه 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 در پایتون را نشان می‌دهد.

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 برای پایتون از طریق دات نت بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله نحوه استخراج تصاویر از ارائه های پاورپوینت در پایتون را یاد گرفتید. همچنین استخراج تصاویر از شکل ها و پس زمینه اسلایدها را به طور جداگانه پوشش داده ایم. علاوه بر این، می‌توانید با مراجعه به مستندات درباره Aspose.Slides برای Python بیشتر کاوش کنید. همچنین، می توانید سوالات خود را از طریق تالار گفتمان ما بپرسید.

همچنین ببینید

اطلاعات: Aspose مبدل‌های پاورپوینت به تصاویر - PPT به JPG و [PPT به PNG][] را ارائه می‌کند که به شما امکان می‌دهد تصاویر را بر اساس اسلایدهای یک ارائه تولید کنید.