Ekstrak Gambar dari PowerPoint PPT di C#

Saat memproses presentasi PowerPoint dalam aplikasi .NET, Anda mungkin perlu mengekstrak konten dari slide PPT. Isinya bisa berupa teks dan gambar. Di posting sebelumnya, kami telah membahas ekstraksi teks dari slide PowerPoint. Pada artikel ini, kami akan menunjukkan cara mengekstrak gambar dari PowerPoint PPT atau PPTX di C#.

C# API untuk Mengekstrak Gambar dari PowerPoint PPT - Unduh Gratis

Untuk mengekstrak gambar dari PowerPoint PPT/PPTX, kami akan menggunakan Aspose.Slides for .NET. Ini adalah .NET API kaya fitur yang memungkinkan Anda membuat presentasi baru dan memanipulasi yang sudah ada dengan mulus. Anda dapat mengunduh DLL API atau menginstalnya menggunakan NuGet.

PM> Install-Package Aspose.Slides.NET

Ekstrak Gambar dari PowerPoint PPT di C#

Berikut ini adalah langkah-langkah untuk mengekstrak semua gambar dalam presentasi PPT di C#.

  • Pertama, gunakan kelas Presentation untuk memuat file PPT/PPTX.
  • Kemudian, ulangi semua gambar dalam presentasi menggunakan koleksi Presentation.Images.
  • Terakhir, dapatkan jenis dan format setiap gambar dan simpan.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari PowerPoint PPT di C#.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");

Aspose.Slides.IPPImage img = null;
ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;
int imageIndex = 1;
string imageType = "";
String imagePath = "Image_";

// Ulangi melalui gambar
foreach (var image in pres.Images)
{
    // Dapatkan format gambar
    format = GetImageFormat(image.ContentType);

    // Dapatkan jenis gambar
    imageType = image.ContentType;
    imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);

    // Menyimpan gambar
    image.SystemImage.Save(imagePath + "Slide_" + imageIndex.ToString() + "." + imageType, format);
    imageIndex++;
}

Ekstrak Gambar dari Bentuk dalam PPT

Dalam berbagai kasus, Anda mungkin perlu mengekstraksi gambar dari objek bentuk saja. Ini dapat dicapai dengan mengikuti langkah-langkah di bawah ini.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari bentuk di PPT menggunakan C#.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");

Aspose.Slides.IPPImage img = null;
int slideIndex = 0;
String imageType = "";
bool isImageFound = false;

// Ulangi slide
for (int i = 0; i < pres.Slides.Count; i++)
{
    slideIndex++;
    // Akses slide
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // Loop melalui bentuk
   for (int j = 0; j < slide.Shapes.Count; j++)
    {
        // Akses bentuknya
        IShape sh = slide.Shapes[j];

        // Periksa apakah itu bentuk otomatis
        if (sh is AutoShape)
        {
            AutoShape ashp = (AutoShape)sh;

            // Periksa apakah ada gambarnya
            if (ashp.FillFormat.FillType == FillType.Picture)
            {
                // Dapatkan gambar
                img = ashp.FillFormat.PictureFillFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;

            }
        }
        else if (sh is PictureFrame)
        {
            // Jika bentuknya adalah bingkai foto
            IPictureFrame pf = (IPictureFrame)sh;

            // Periksa apakah itu berisi gambar
            if (pf.FillFormat.FillType == FillType.Picture)
            {
                // Dapatkan gambar
                img = pf.PictureFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;
            }
        }

        // Jika gambar ditemukan kemudian simpan
        if (isImageFound)
        {
            format = GetImageFormat(imageType);
            String imagePath = "Image_";
            img.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "_Shape_" + j.ToString() + "." + imageType, format);
        }

        isImageFound = false;
    }
}

Ekstraksi Gambar C# dari Latar Belakang Slide PPTX

Skenario lain yang mungkin adalah mengekstraksi gambar yang hanya digunakan sebagai latar belakang slide. Langkah-langkah berikut menunjukkan cara mengekstrak gambar latar belakang slide dalam C#.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari latar belakang slide dalam PPT di C#.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");
Aspose.Slides.IPPImage backImg = null;

int slideIndex = 0;
String imageType = "";
for (int i = 0; i < pres.Slides.Count; i++)
{
    slideIndex++;
    // Akses slide
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // Periksa apakah latar belakang memiliki gambar
    if (slide.Background.FillFormat.FillType == FillType.Picture)
    {
        // Dapatkan gambar  
        backImg = slide.Background.FillFormat.PictureFillFormat.Picture.Image;

        // Mengatur format gambar 
        imageType = backImg.ContentType;
        imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
        format = GetImageFormat(imageType);

        // Menyimpan gambar
        String imagePath = "BackImage_";
        backImg.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "." + imageType, format);
    }
    else
    {
        if (slide.LayoutSlide.Background.FillFormat.FillType == FillType.Picture)
        {
            // Dapatkan gambar latar belakang  
            backImg = slide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image;

            // Mengatur format gambar 
            imageType = backImg.ContentType;
            imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
            format = GetImageFormat(imageType);

            // Menyimpan gambar
            String imagePath = "BackImage_Slide_" + i;
            backImg.SystemImage.Save(imagePath + "LayoutSlide_" + slideIndex.ToString() + "." + imageType, format);

        }
    }                
}

Kami telah menggunakan metode GetImageFormat di semua cuplikan kode di atas. Metode ini mengembalikan format gambar yang sesuai untuk jenis yang disediakan. Implementasi metode ini diberikan di bawah ini.

public static System.Drawing.Imaging.ImageFormat GetImageFormat(String ImageType)
{
    System.Drawing.Imaging.ImageFormat Format = System.Drawing.Imaging.ImageFormat.Jpeg;
    switch (ImageType)
    {
        case "jpeg":
            Format = System.Drawing.Imaging.ImageFormat.Jpeg;
            break;

        case "emf":
            Format = System.Drawing.Imaging.ImageFormat.Emf;
            break;

        case "bmp":
            Format = System.Drawing.Imaging.ImageFormat.Bmp;
            break;

        case "png":
            Format = System.Drawing.Imaging.ImageFormat.Png;
            break;

        case "wmf":
            Format = System.Drawing.Imaging.ImageFormat.Wmf;
            break;

        case "gif":
            Format = System.Drawing.Imaging.ImageFormat.Gif;
            break;

    }
    return Format;
}

C# PowerPoint PPT Image Extraction API - Dapatkan Lisensi Gratis

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

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak gambar dari PowerPoint PPT di C#. Dengan bantuan contoh kode, kami telah mendemonstrasikan cara mengekstrak gambar dari bentuk dan latar belakang slide. Anda dapat mempelajari lebih lanjut tentang Aspose.Slides for .NET dengan mengunjungi dokumentasi. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.

Lihat juga