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
- Ekstrak Gambar dari PPTX di C#
- Ekstrak Gambar dari Bentuk di PPT
- Ekstraksi Gambar dari Latar Belakang Slide PPT
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.
- Pertama, gunakan kelas Presentation untuk memuat file presentasi.
- Kemudian, gunakan koleksi Presentation.Slides untuk mengulang slide.
- Untuk setiap slide, akses bentuknya menggunakan koleksi ISlide.Shapes.
- Lakukan langkah-langkah berikut untuk setiap bentuk dalam koleksi:
- Jika bentuknya adalah bentuk otomatis dan diisi dengan gambar, maka ekstrak gambar menggunakan properti IShape.FillFormat.PictureFillFormat.Picture.Image.
- Jika bentuknya adalah bingkai foto, ekstrak gambar menggunakan properti IPictureFrame.PictureFormat.Picture.Image.
- Terakhir, simpan gambar sebagai file.
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#.
- Pertama, muat file PPT/PPTX menggunakan kelas Presentation.
- Kemudian, ulangi slide dalam 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 background memiliki gambar maka ekstrak gambar menggunakan properti Background.FillFormat.PictureFillFormat.Picture.Image.
- Periksa apakah slide tata letak memiliki gambar latar menggunakan properti LayoutSlide.Background.FillFormat.FillType.
- Jika latar belakang slide tata letak diisi dengan gambar, 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 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.