C# ile PowerPoint PPT'den Görüntüleri Çıkarın

Bir .NET uygulamasında PowerPoint sunumlarını işlerken, PPT slaytlarından içerik çıkarmanız gerekebilir. İçerik metin ve resim şeklinde olabilir. Önceki gönderide, PowerPoint slaytlarından metin çıkarmayı ele aldık. Bu makalede, C#’ta PowerPoint PPT veya PPTX’ten görüntüleri nasıl çıkaracağınızı göstereceğiz.

PowerPoint PPT’den Görüntüleri Çıkarmak için C# API’si - Ücretsiz İndirme

PowerPoint PPT/PPTX’ten görüntüleri ayıklamak için Aspose.Slides for .NET kullanacağız. Yeni sunumlar oluşturmanıza ve mevcut sunumları sorunsuz bir şekilde değiştirmenize izin veren, zengin özelliklere sahip bir .NET API’sidir. API’nin DLL’sini indirebilir veya NuGet kullanarak yükleyebilirsiniz.

PM> Install-Package Aspose.Slides.NET

C# dilinde bir PowerPoint PPT’den Görüntüleri Çıkarın

Aşağıdakiler, C# dilinde bir PPT sunumundaki tüm görüntüleri ayıklama adımlarıdır.

  • İlk olarak, PPT/PPTX dosyasını yüklemek için Sunum sınıfını kullanın.
  • Ardından, Presentation.Images koleksiyonunu kullanarak sunumdaki tüm görüntüler arasında geçiş yapın.
  • Son olarak, her görüntünün türünü ve biçimini alın ve kaydedin.

Aşağıdaki kod örneği, C# dilinde bir PowerPoint PPT’den görüntülerin nasıl çıkarılacağını gösterir.

// sunuyu yükle
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_";

// Görüntüler arasında döngü
foreach (var image in pres.Images)
{
    // Resim biçimini al
    format = GetImageFormat(image.ContentType);

    // Resim türünü al
    imageType = image.ContentType;
    imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);

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

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

Çeşitli durumlarda, görüntüleri yalnızca şekil nesnelerinden çıkarmanız gerekebilir. Bu, aşağıdaki adımları izleyerek elde edilebilir.

  • İlk olarak, sunum dosyasını yüklemek için Sunum sınıfını kullanın.
  • Ardından, slaytlar arasında geçiş yapmak için Presentation.Slides koleksiyonunu kullanı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:

Aşağıdaki kod örneği, C# kullanarak bir PPT’deki şekillerden görüntülerin nasıl çıkarılacağını gösterir.

// sunuyu yükle
Presentation pres = new Presentation("presentation.pptx");

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

// Slaytlar arasında geçiş yapma
for (int i = 0; i < pres.Slides.Count; i++)
{
    slideIndex++;
    // Slayda erişin
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // Şekiller arasında döngü
   for (int j = 0; j < slide.Shapes.Count; j++)
    {
        // Şekle erişin
        IShape sh = slide.Shapes[j];

        // Bunun bir otomatik şekil olup olmadığını kontrol edin
        if (sh is AutoShape)
        {
            AutoShape ashp = (AutoShape)sh;

            // resmi olup olmadığını kontrol edin
            if (ashp.FillFormat.FillType == FillType.Picture)
            {
                // Görüntü almak
                img = ashp.FillFormat.PictureFillFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;

            }
        }
        else if (sh is PictureFrame)
        {
            // Şekil bir resim çerçevesi ise
            IPictureFrame pf = (IPictureFrame)sh;

            // Resim içerip içermediğini kontrol edin
            if (pf.FillFormat.FillType == FillType.Picture)
            {
                // Görüntü almak
                img = pf.PictureFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;
            }
        }

        // Resim bulunursa kaydedin
        if (isImageFound)
        {
            format = GetImageFormat(imageType);
            String imagePath = "Image_";
            img.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "_Shape_" + j.ToString() + "." + imageType, format);
        }

        isImageFound = false;
    }
}

PPTX Slayt Arka Planlarından C# Görüntü Çıkarma

Başka bir olası senaryo, yalnızca slayt arka planı olarak kullanılan görüntüleri çıkarmak olabilir. Aşağıdaki adımlar, C# dilinde slayt arka plan resimlerinin nasıl çıkarılacağını gösterir.

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

// sunuyu yükle
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++;
    // Slayda erişin
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // Arka planda resim olup olmadığını kontrol edin
    if (slide.Background.FillFormat.FillType == FillType.Picture)
    {
        // resim al  
        backImg = slide.Background.FillFormat.PictureFillFormat.Picture.Image;

        // Resim biçimini ayarla 
        imageType = backImg.ContentType;
        imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
        format = GetImageFormat(imageType);

        // Resmi Kaydet
        String imagePath = "BackImage_";
        backImg.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "." + imageType, format);
    }
    else
    {
        if (slide.LayoutSlide.Background.FillFormat.FillType == FillType.Picture)
        {
            // Arka plan resmini al  
            backImg = slide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image;

            // Resim biçimini ayarla 
            imageType = backImg.ContentType;
            imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
            format = GetImageFormat(imageType);

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

        }
    }                
}

Yukarıdaki kod parçacıklarının hepsinde GetImageFormat yöntemini kullandık. Bu yöntem, sağlanan tür için uygun görüntü formatını döndürür. Bu yöntemin uygulanışı aşağıda verilmiştir.

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 Görüntü Çıkarma API’sı - Ücretsiz Lisans Alın

Aspose.Slides for .NET’i değerlendirme sınırlamaları olmadan kullanmak için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Bu makalede, C# dilinde PowerPoint PPT’den görüntülerin nasıl çıkarılacağını öğrendiniz. Kod örneklerinin yardımıyla şekillerden ve slayt arka planlarından görüntülerin nasıl çıkarılacağını gösterdik. belgeleri ziyaret ederek Aspose.Slides for .NET hakkında daha fazlasını keşfedebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.

Ayrıca bakınız