Python'da PowerPoint Sunumlarından Görüntüleri Çıkarın

Görüntüler, içeriği canlı kılan etkili bir iletişim yoludur. Resimlerin web sayfalarında, belgelerde, sunumlarda vb. Bu nedenle, sunumları programlı olarak işlerken, metinle birlikte görüntüleri de çıkarmanız gerekebilir. Bunu başarmak için bu makale, Python’da PPT veya PPTX sunumlarından görüntülerin nasıl çıkarılacağını kapsar.

Sunumlardan Görüntüler Çıkarmak için Python Kitaplığı

PowerPoint sunumlarından görüntüleri ayıklamak için Aspose.Slides for Python via .NET kullanacağız. Sıfırdan sunumlar oluşturmak için tasarlanmış güçlü bir Python kitaplığıdır. Ayrıca, mevcut sunumları sorunsuz bir şekilde dönüştürmenize ve değiştirmenize olanak tanır. Aşağıdaki pip komutunu kullanarak PyPI‘den kurabilirsiniz.

> pip install aspose.slides

Python’da bir PowerPoint PPT’den Görüntüleri Çıkarın

Python’da bir PowerPoint sunumundan görüntüleri ayıklamak için gereken adımlar aşağıdadır.

  • Presentation sınıfını kullanarak sunumu yükleyin.
  • Presentation.images koleksiyonunu kullanarak sunumdaki görüntüler arasında geçiş yapın.
  • Her görüntüyü bir dosya olarak kaydedin.

Aşağıdaki kod örneği, Python’da bir PPTX dosyasından görüntülerin nasıl çıkarılacağını gösterir.

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

imageIndex=1
# sunumu yükle
with slides.Presentation("presentation.pptx") as pres:

    # görüntüler arasında döngü
   for image in pres.images:
        file_name = "Image_{0}.{1}"
        image_type = image.content_type.split("/")[1]
        image_format = get_image_format(image_type)

        # resmi Kaydet
        image.system_image.save(file_name.format( imageIndex, image_type), image_format)
        imageIndex = imageIndex + 1

Bir PPT’deki Şekillerden Görüntüleri Çıkarın

Bazı durumlarda, bir sunudaki şekillerden yalnızca görüntüler çıkarmanız gerekebilir. Öyleyse, Python’da bir PPT’deki şekillerden nasıl resim çıkarılacağını görelim.

  • İlk önce Presentation sınıfını kullanarak sunumu yükleyin.
  • Ardından Presentation.slides koleksiyonunu kullanarak sunum slaytları arasında geçiş yapın.
  • Her slayt için, ISlide.shapes koleksiyonunu kullanarak şekillerine erişin.
  • Koleksiyondaki her şekil için aşağıdaki adımları gerçekleştirin:
    • Şekil bir otomatik şekilse ve dolgu türü resim ise, IShape.fillformat.picturefillformat.picture.image özelliğini kullanarak görüntüyü çıkarın.
    • Şekil bir resim çerçevesiyse, görüntüyü IShape.pictureformat.picture.image özelliğini kullanarak çıkarın.
    • Son olarak, görüntüyü bir dosya olarak kaydedin.

Aşağıdaki kod örneği, Python kullanılarak bir PPT sunumundaki şekillerden görüntülerin nasıl çıkarılacağını gösterir.

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

# sunumu yükle
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # slaytlar arasında döngü
   for slide in pres.slides:
        slideIndex += 1
        image_format = drawing.imaging.ImageFormat.jpeg
        file_name = "BackImage_Slide_{0}{1}.{2}"
      
        # slayttaki şekiller arasında döngü
       for i in range(len(slide.shapes)):
            shape = slide.shapes[i]
            shape_image = None

            # check is shape bir otomatik şekil veya resim çerçevesidir
            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

            # resmi Kaydet
            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)

Bir PPT’de Slayt Arka Planlarından Görüntüleri Çıkarın

Başka bir senaryo, slayt arka planı olarak kullanılan görüntülerin ayıklanması olabilir. Aşağıdakiler, bir PPT sunumunda yalnızca slayt arka planlarından görüntüleri çıkarmak için izlenecek adımlardır.

  • İlk önce Presentation sınıfını kullanarak sunumu yükleyin.
  • Ardından Presentation.slides koleksiyonunu kullanarak sunum slaytları arasında geçiş yapın.
  • Her slayt için aşağıdaki adımları gerçekleştirin:
    • ISlide.background.fillformat.filltype özelliğini kullanarak slaydın arka plan resmi olup olmadığını kontrol edin.
    • Arka planda resim varsa ISlide.background.fillformat.picturefillformat.picture.image özelliğini kullanarak resmi çıkarın.
    • ISlide.layoutslide.background.fillformat.filltype özelliğini kullanarak düzen slaydının arka plan resmi olup olmadığını kontrol edin.
    • Arka plan bir resimle doluysa ISlide.layoutslide.background.fillformat.picturefillformat.picture.image özelliğini kullanarak çıkartın.
    • Son olarak, çıkarılan görüntüyü bir dosya olarak kaydedin.

Aşağıdaki kod örneği, Python’da bir PPT’de slayt arka planlarından görüntülerin nasıl çıkarılacağını gösterir.

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

# sunumu yükle
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # Sunumdaki slaytlar arasında geçiş yapın
   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

        # slaydın ve düzen slaydının arka planlarının resimle dolu olup olmadığını kontrol edin
        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

        # resmi Kaydet
        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)

Yukarıdaki kod örneklerinin her ikisi de, sağlanan tür için uygun görüntü formatını döndüren bir getimageformat yöntemi kullanır. Bu yöntemin uygulanması aşağıda verilmiştir.

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)

Ücretsiz Lisans Alın

Aspose.Slides for Python’u .NET üzerinden değerlendirme sınırlamaları olmaksızın kullanmak için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Bu makalede, Python’da PowerPoint sunumlarından görüntülerin nasıl çıkarılacağını öğrendiniz. Ayrıca şekillerden ve slayt arka planlarından görüntülerin çıkarılmasını ayrı ayrı ele aldık. Ayrıca, belgeleri ziyaret ederek Aspose.Slides for Python hakkında daha fazlasını keşfedebilirsiniz. Ayrıca forumumuz aracılığıyla da sorularınızı sorabilirsiniz.

Ayrıca bakınız

Bilgi: Aspose, bir sunumdaki slaytlara dayalı görüntüler oluşturmanıza olanak tanıyan PowerPoint’ten görüntülere dönüştürücüler PPT’den JPG’ye ve [PPT’den PNG][]‘ye sağlar.