استخراج الصور من PowerPoint PPT في C#

أثناء معالجة عروض PowerPoint التقديمية في تطبيق .NET ، قد تحتاج إلى استخراج المحتوى من شرائح PPT. يمكن أن يكون المحتوى في شكل نصوص وصور. في المنشور السابق ، قمنا بتغطية استخراج النص من شرائح PowerPoint. في هذه المقالة ، سنوضح لك كيفية استخراج الصور من PowerPoint PPT أو PPTX في C#.

C# API لاستخراج الصور من PowerPoint PPT - تنزيل مجاني

لاستخراج الصور من PowerPoint PPT / PPTX ، سنستخدم Aspose.Slides for .NET. إنه .NET API غني بالميزات يسمح لك بإنشاء عروض تقديمية جديدة والتعامل مع العروض الحالية بسلاسة. يمكنك إما تنزيل DLL الخاصة بواجهة برمجة التطبيقات أو تثبيته باستخدام NuGet.

PM> Install-Package Aspose.Slides.NET

استخراج الصور من PowerPoint PPT في C#

فيما يلي خطوات استخراج جميع الصور في عرض تقديمي PPT في C#.

  • أولاً ، استخدم فئة Presentation لتحميل ملف PPT / PPTX.
  • بعد ذلك ، قم بإجراء حلقة عبر جميع الصور في العرض التقديمي باستخدام مجموعة Presentation.Images.
  • أخيرًا ، احصل على نوع كل صورة وتنسيقها واحفظها.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من PowerPoint PPT في C#.

// قم بتحميل العرض التقديمي
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_";

// حلقة من خلال الصور
foreach (var image in pres.Images)
{
    // احصل على تنسيق الصورة
    format = GetImageFormat(image.ContentType);

    // الحصول على نوع الصورة
    imageType = image.ContentType;
    imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);

    // احفظ الصورة
    image.SystemImage.Save(imagePath + "Slide_" + imageIndex.ToString() + "." + imageType, format);
    imageIndex++;
}

استخراج الصور من الأشكال في PPT

في حالات مختلفة ، قد تحتاج إلى استخراج الصور من كائنات الشكل فقط. يمكن تحقيق ذلك باتباع الخطوات أدناه.

  • أولاً ، استخدم فئة Presentation لتحميل ملف العرض التقديمي.
  • ثم استخدم مجموعة Presentation.Slides للتنقل بين الشرائح.
  • لكل شريحة ، قم بالوصول إلى أشكالها باستخدام مجموعة ISlide.Shapes.
  • نفذ الخطوات التالية لكل شكل في المجموعة:

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من الأشكال في PPT باستخدام C#.

// قم بتحميل العرض التقديمي
Presentation pres = new Presentation("presentation.pptx");

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

// حلقة خلال الشرائح
for (int i = 0; i < pres.Slides.Count; i++)
{
    slideIndex++;
    // الوصول إلى الشريحة
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // حلقة من خلال الأشكال
   for (int j = 0; j < slide.Shapes.Count; j++)
    {
        // الوصول إلى الشكل
        IShape sh = slide.Shapes[j];

        // تحقق من أنه شكل تلقائي
        if (sh is AutoShape)
        {
            AutoShape ashp = (AutoShape)sh;

            // تحقق مما إذا كان لديه صورة
            if (ashp.FillFormat.FillType == FillType.Picture)
            {
                // احصل على الصورة
                img = ashp.FillFormat.PictureFillFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;

            }
        }
        else if (sh is PictureFrame)
        {
            // إذا كان الشكل عبارة عن إطار صورة
            IPictureFrame pf = (IPictureFrame)sh;

            // تحقق مما إذا كان يحتوي على صورة
            if (pf.FillFormat.FillType == FillType.Picture)
            {
                // احصل على الصورة
                img = pf.PictureFormat.Picture.Image;
                imageType = img.ContentType;
                imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
                isImageFound = true;
            }
        }

        // إذا تم العثور على الصورة ثم احفظها
        if (isImageFound)
        {
            format = GetImageFormat(imageType);
            String imagePath = "Image_";
            img.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "_Shape_" + j.ToString() + "." + imageType, format);
        }

        isImageFound = false;
    }
}

C# استخراج الصور من خلفيات شرائح PPTX

قد يكون السيناريو المحتمل الآخر هو استخراج الصور التي تُستخدم فقط كخلفيات شرائح. توضح الخطوات التالية كيفية استخراج صور خلفية الشرائح في C#.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من خلفيات الشرائح في PPT في C#.

// قم بتحميل العرض التقديمي
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++;
    // الوصول إلى الشريحة
    ISlide slide = pres.Slides[i];
    System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Jpeg;

    // تحقق مما إذا كانت الخلفية بها صورة
    if (slide.Background.FillFormat.FillType == FillType.Picture)
    {
        // احصل على صورة  
        backImg = slide.Background.FillFormat.PictureFillFormat.Picture.Image;

        // ضبط تنسيق الصورة 
        imageType = backImg.ContentType;
        imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
        format = GetImageFormat(imageType);

        // احفظ الصورة
        String imagePath = "BackImage_";
        backImg.SystemImage.Save(imagePath + "Slide_" + slideIndex.ToString() + "." + imageType, format);
    }
    else
    {
        if (slide.LayoutSlide.Background.FillFormat.FillType == FillType.Picture)
        {
            // احصل على صورة الخلفية  
            backImg = slide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image;

            // ضبط تنسيق الصورة 
            imageType = backImg.ContentType;
            imageType = imageType.Remove(0, imageType.IndexOf("/") + 1);
            format = GetImageFormat(imageType);

            // احفظ الصورة
            String imagePath = "BackImage_Slide_" + i;
            backImg.SystemImage.Save(imagePath + "LayoutSlide_" + slideIndex.ToString() + "." + imageType, format);

        }
    }                
}

لقد استخدمنا طريقة GetImageFormat في جميع مقتطفات التعليمات البرمجية أعلاه. تقوم هذه الطريقة بإرجاع تنسيق الصورة المناسب للنوع المتوفر. يتم تنفيذ هذه الطريقة أدناه.

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 - احصل على ترخيص مجاني

يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام Aspose.Slides لـ .NET بدون قيود تقييم.

استنتاج

في هذه المقالة ، تعلمت كيفية استخراج الصور من PowerPoint PPT في C#. بمساعدة نماذج التعليمات البرمجية ، أوضحنا كيفية استخراج الصور من الأشكال وخلفيات الشرائح. يمكنك استكشاف المزيد حول Aspose.Slides for .NET من خلال زيارة التوثيق. يمكنك أيضًا طرح أسئلتك عبر المنتدى.

أنظر أيضا