أثناء معالجة عروض PowerPoint التقديمية في تطبيق .NET ، قد تحتاج إلى استخراج المحتوى من شرائح PPT. يمكن أن يكون المحتوى في شكل نصوص وصور. في المنشور السابق ، قمنا بتغطية استخراج النص من شرائح PowerPoint. في هذه المقالة ، سنوضح لك كيفية استخراج الصور من PowerPoint PPT أو PPTX في C#.
- C# API لاستخراج الصور من PowerPoint PPT
- استخراج الصور من PPTX في C#
- استخراج الصور من الأشكال في PPT
- استخراج الصورة من خلفية شريحة PPT
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.
- نفذ الخطوات التالية لكل شكل في المجموعة:
- إذا كان الشكل عبارة عن شكل تلقائي ومعبأ بصورة ، فقم باستخراج الصورة باستخدام خاصية IShape.FillFormat.PictureFillFormat.Picture.Image.
- إذا كان الشكل عبارة عن إطار صورة ، فقم باستخراج الصورة باستخدام خاصية IPictureFrame.PictureFormat.Picture.Image.
- أخيرًا ، احفظ الصورة كملف.
يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من الأشكال في 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 / PPTX باستخدام فئة Presentation.
- ثم ، قم بالتمرير خلال الشرائح في العرض التقديمي باستخدام مجموعة Presentation.Slides.
- لكل شريحة ، قم بتنفيذ الخطوات التالية:
- تحقق مما إذا كانت الشريحة تحتوي على صورة خلفية باستخدام خاصية ISlide.Background.FillFormat.FillType.
- إذا كانت الخلفية تحتوي على صورة ، فاستخرج الصورة باستخدام خاصية Background.FillFormat.PictureFillFormat.Picture.Image.
- تحقق مما إذا كانت شريحة التخطيط تحتوي على صورة خلفية باستخدام خاصية LayoutSlide.Background.FillFormat.FillType.
- إذا كانت خلفية شريحة التخطيط مليئة بصورة ، فاستخرجها باستخدام خاصية ISlide.LayoutSlide.Background.FillFormat.PictureFillFormat.Picture.Image.
- أخيرًا ، احفظ الصورة المستخرجة كملف.
يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من خلفيات الشرائح في 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 من خلال زيارة التوثيق. يمكنك أيضًا طرح أسئلتك عبر المنتدى.