Ekstrak Gambar dari Presentasi PowerPoint dengan Python

Gambar adalah cara komunikasi yang efektif yang membuat konten menjadi hidup. Inilah alasan mengapa gambar diadopsi secara luas di halaman web, dokumen, presentasi, dll. Presentasi MS PowerPoint biasanya dibuat dengan lebih sedikit teks dan lebih banyak objek dan gambar grafis. Oleh karena itu, saat memproses presentasi secara terprogram, Anda mungkin perlu mengekstrak gambar beserta teksnya. Untuk melakukannya, artikel ini membahas cara mengekstrak gambar dari presentasi PPT atau PPTX dengan Python.

Pustaka Python untuk Mengekstrak Gambar dari Presentasi

Untuk mengekstrak gambar dari presentasi PowerPoint, kita akan menggunakan Aspose.Slides for Python via .NET. Ini adalah pustaka Python yang kuat yang dirancang untuk membuat presentasi dari awal. Selain itu, ini memungkinkan Anda untuk mengonversi dan memanipulasi presentasi yang ada dengan mulus. Anda dapat menginstalnya dari PyPI menggunakan perintah pip berikut.

> pip install aspose.slides

Ekstrak Gambar dari PPT PowerPoint dengan Python

Berikut ini adalah langkah-langkah untuk mengekstrak gambar dari presentasi PowerPoint dengan Python.

  • Muat presentasi menggunakan kelas Presentation.
  • Ulangi gambar dalam presentasi menggunakan koleksi Presentation.images.
  • Simpan setiap gambar sebagai file.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari file PPTX dengan Python.

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

imageIndex=1
# memuat presentasi
with slides.Presentation("presentation.pptx") as pres:

    # lingkaran melalui gambar
   for image in pres.images:
        file_name = "Image_{0}.{1}"
        image_type = image.content_type.split("/")[1]
        image_format = get_image_format(image_type)

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

Ekstrak Gambar dari Bentuk dalam PPT

Dalam kasus tertentu, Anda mungkin perlu mengekstrak gambar hanya dari bentuk dalam presentasi. Jadi mari kita lihat cara mengekstrak gambar dari bentuk di PPT dengan Python.

  • Pertama, muat presentasi menggunakan kelas Presentation.
  • Kemudian, ulangi slide presentasi menggunakan koleksi Presentation.slides.
  • Untuk setiap slide, akses bentuknya menggunakan koleksi ISlide.shapes.
  • Untuk setiap bentuk dalam koleksi, lakukan langkah-langkah berikut:
    • Jika bentuknya adalah bentuk otomatis dan jenis isiannya adalah gambar, maka ekstrak gambar menggunakan properti IShape.fillformat.picturefillformat.picture.image.
    • Jika bentuknya adalah bingkai foto maka ekstrak gambar menggunakan properti IShape.pictureformat.picture.image.
    • Terakhir, simpan gambar sebagai file.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari bentuk dalam presentasi PPT menggunakan Python.

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

# memuat presentasi
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # loop melalui slide
   for slide in pres.slides:
        slideIndex += 1
        image_format = drawing.imaging.ImageFormat.jpeg
        file_name = "BackImage_Slide_{0}{1}.{2}"
      
        # loop melalui bentuk dalam slide
       for i in range(len(slide.shapes)):
            shape = slide.shapes[i]
            shape_image = None

            # periksa apakah bentuknya adalah bentuk otomatis atau bingkai foto
            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

            # menyimpan gambar
            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)

Ekstrak Gambar dari Latar Belakang Slide dalam PPT

Skenario lain bisa mengekstrak gambar yang digunakan sebagai latar belakang slide. Berikut ini adalah langkah-langkah untuk mengekstrak gambar hanya dari latar belakang slide dalam presentasi PPT.

  • Pertama, muat presentasi menggunakan kelas Presentation.
  • Kemudian, ulangi slide presentasi menggunakan koleksi Presentation.slides.
  • Untuk setiap slide, lakukan langkah-langkah berikut:
    • Periksa apakah slide memiliki gambar latar belakang menggunakan properti ISlide.background.fillformat.filltype.
    • Jika latar belakang memiliki gambar maka ekstrak gambar menggunakan properti ISlide.background.fillformat.picturefillformat.picture.image.
    • Periksa apakah slide tata letak memiliki gambar latar belakang menggunakan properti ISlide.layoutslide.background.fillformat.filltype.
    • Jika background diisi dengan gambar maka ekstrak menggunakan properti ISlide.layoutslide.background.fillformat.picturefillformat.picture.image.
    • Terakhir, simpan gambar yang diekstraksi sebagai file.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari latar belakang slide di PPT dengan Python.

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

# memuat presentasi
with slides.Presentation("pres.pptx") as pres:
    slideIndex = 0
    image_type = ""
    
    # loop melalui slide dalam presentasi
   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

        # periksa apakah latar belakang slide dan tata letak slide diisi dengan gambar
        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

        # menyimpan gambar
        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)

Kedua contoh kode di atas menggunakan metode getimageformat, yang mengembalikan format gambar yang sesuai untuk tipe yang disediakan. Implementasi metode tersebut diberikan di bawah ini.

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)

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk menggunakan Aspose.Slides for Python melalui .NET tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak gambar dari presentasi PowerPoint dengan Python. Kami juga telah membahas ekstraksi gambar dari bentuk dan latar belakang slide secara terpisah. Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.Slides for Python dengan mengunjungi dokumentasi. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.

Lihat juga

Info: Aspose menyediakan pengonversi PowerPoint ke gambar — PPT ke JPG dan [PPT ke PNG][] — yang memungkinkan Anda menghasilkan gambar berdasarkan slide dalam presentasi.