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

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

Java API لاستخراج الصور من PowerPoint PPT

Aspose.Slides for Java هي واجهة برمجة تطبيقات مشهورة وغنية بالمميزات تتيح لك إنشاء عروض PowerPoint التقديمية ومعالجتها بسلاسة. سنستخدم واجهة برمجة التطبيقات هذه لاستخراج الصور من ملفات PPT / PPTX. يمكنك إما تنزيل JAR الخاص بواجهة برمجة التطبيقات أو تثبيته باستخدام تكوينات Maven التالية.

مخزن:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

الاعتماد:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>22.1</version>
    <classifier>jdk16</classifier>
</dependency>

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

في عروض PowerPoint التقديمية ، يتم تخزين جميع الصور المستخدمة في الشرائح في مجموعة صور. يمكن الوصول إلى هذه المجموعة ويمكن حفظ كل صورة كملف. فيما يلي خطوات استخراج جميع الصور في عرض تقديمي PPT في Java.

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

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

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

int imageIndex = 1;
String imageType = "";
String imagePath = "Image_";

// حلقة من خلال الصور
for (IPPImage image : pres.getImages()) {
  // الحصول على نوع الصورة
  imageType = image.getContentType();
  imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

  // احفظ الصورة
  try {
    ImageIO.write(image.getSystemImage(), imageType, new File(imagePath + imageIndex + "." + imageType.toString()));
  } catch (IOException ex) {
    System.out.println(ex.getMessage());
  }
  imageIndex++;
}

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

يمكنك أيضًا استخراج الصور فقط من الأشكال الموجودة في شرائح PPT. فيما يلي خطوات تحقيق ذلك.

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

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

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

com.aspose.slides.IPPImage img = null;
int slideIndex = 0;
String imageType = "";
boolean isImageFound = false;

// حلقة خلال الشرائح
for (int i = 0; i < pres.getSlides().size(); i++) {
  slideIndex++;

  // الوصول إلى الشريحة
  ISlide sl = pres.getSlides().get_Item(i);

 for (int j = 0; j < sl.getShapes().size(); j++) {
    // الوصول إلى الشكل
    IShape sh = sl.getShapes().get_Item(j);

    // تحقق مما إذا كان شكلًا تلقائيًا
    if (sh instanceof IAutoShape) {
      IAutoShape ashp = (IAutoShape) sh;
      if (ashp.getFillFormat().getFillType() == FillType.Picture) {
        img = ashp.getFillFormat().getPictureFillFormat().getPicture().getImage();
        imageType = img.getContentType();
        imageType = imageType.substring(0, imageType.indexOf("/") + 1);
        isImageFound = true;
      }
    }

    // إذا كان الشكل عبارة عن إطار صورة
    else if (sh instanceof IPictureFrame) {
      IPictureFrame pf = (IPictureFrame) sh;
      img = pf.getPictureFormat().getPicture().getImage();
      imageType = img.getContentType();
      imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());
      isImageFound = true;
    }

    // اضبط تنسيق الصورة المطلوب
    if (isImageFound) {
      try {
        ImageIO.write(img.getSystemImage(), imageType,
            new File("Slide_" + slideIndex + "_Shape_" + j + "." + imageType));
      } catch (IOاستثناء ex) {
        // استثناء
      }
    }
    isImageFound = false;
  }
}

Java Image Extraction من خلفيات شرائح PPT

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

  • أولاً ، قم بتحميل العرض التقديمي باستخدام فئة Presentation.

  • بعد ذلك ، قم بالتكرار خلال الشرائح في العرض التقديمي باستخدام طريقة Presentation.getSlides().

  • لكل شريحة ، قم بتنفيذ الخطوات التالية:

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

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

com.aspose.slides.IPPImage img = null;
com.aspose.slides.IPPImage backImage = null;

String ImagePath = "BackImage_";
int slideIndex = 0;
String imageType = "";
for (int i = 0; i < pres.getSlides().size(); i++) {
  slideIndex++;

  // الوصول إلى الشريحة
  ISlide sl = pres.getSlides().get_Item(i);

  // تحقق مما إذا كانت الخلفية مليئة بالصورة
  if (sl.getBackground().getFillFormat().getFillType() == FillType.Picture) {
    // احصل على صورة الخلفية
    backImage = sl.getBackground().getFillFormat().getPictureFillFormat().getPicture().getImage();

    // احفظ الصورة
    BufferedImage image = backImage.getSystemImage();
    imageType = backImage.getContentType();
    imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

    try {
      ImageIO.write(image, imageType,
          new File(ImagePath + "Slide_" + slideIndex + "." + imageType.toString()));
    } catch (IOException ex) {
      // قراءة رسالة الاستثناء
    }
  } else {
    // تحقق مما إذا كان تخطيط الشريحة يحتوي على خلفية صورة
    if (sl.getLayoutSlide().getBackground().getFillFormat().getFillType() == FillType.Picture) {

      // احصل على صورة الخلفية
      backImage = sl.getLayoutSlide().getBackground().getFillFormat().getPictureFillFormat().getPicture()
          .getImage();

      // احفظ الصورة
      BufferedImage image = backImage.getSystemImage();
      imageType = backImage.getContentType();
      imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

      try {
        ImageIO.write(image, imageType,
            new File(ImagePath + "LayoutSlide_" + slideIndex + "." + imageType.toString()));
      } catch (IOException ex) {
        // قراءة رسالة الاستثناء
      }
    }
  }
}

Java PowerPoint Image Extraction API - احصل على ترخيص مجاني

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

استنتاج

في هذه المقالة ، أوضحنا كيفية استخراج الصور من PowerPoint PPT / PPTX في Java. بالإضافة إلى ذلك ، قمنا بتغطية كيفية استخراج الصور إما من خلفيات الشكل أو الشرائح بشكل منفصل. بالإضافة إلى ذلك ، يمكنك قراءة المزيد حول Aspose.Slides for Java من خلال زيارة التوثيق. يمكنك أيضًا إرسال استفساراتك إلى المنتدى.

أنظر أيضا