استخراج تصاویر از پاورپوینت PPT در جاوا

در موارد خاص، ممکن است لازم باشد تصاویر را از ارائه های پاورپوینت به همراه متن استخراج کنید. برای دستیابی به آن، این مقاله نحوه استخراج تصاویر از پاورپوینت PPT یا PPTX را به صورت برنامه‌نویسی در جاوا پوشش می‌دهد. همچنین یاد خواهید گرفت که چگونه تصاویر را فقط از پس زمینه یا اشکال موجود در اسلایدهای PPT استخراج کنید.

Java API برای استخراج تصاویر از PowerPoint PPT

Aspose.Slides for Java یک API محبوب و غنی است که به شما امکان می دهد ارائه های پاورپوینت را به طور یکپارچه ایجاد و دستکاری کنید. ما از این API برای استخراج تصاویر از فایل های PPT/PPTX استفاده خواهیم کرد. می توانید JAR API را دانلود یا با استفاده از تنظیمات 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>

استخراج تصاویر از پاورپوینت PPT در جاوا

در ارائه های پاورپوینت، تمام تصاویر استفاده شده در اسلایدها در یک مجموعه تصاویر ذخیره می شوند. این مجموعه قابل دسترسی است و هر تصویر را می توان به عنوان یک فایل ذخیره کرد. مراحل زیر برای استخراج تمام تصاویر در یک ارائه PPT در جاوا است.

  • ابتدا از کلاس Presentation برای بارگیری ارائه PPT/PPTX استفاده کنید.
  • سپس با استفاده از روش Presentation.getImages() به مجموعه تصاویر موجود در ارائه دسترسی پیدا کنید.
  • در نهایت، نوع و فرمت هر تصویر را دریافت کرده و آن را ذخیره کنید.

نمونه کد زیر نحوه استخراج تصاویر از فایل پاورپوینت PPTX در جاوا را نشان می دهد.

// ارائه را بارگیری کنید
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 Shapes در جاوا

همچنین می توانید تصاویر را فقط از شکل های موجود در اسلایدهای PPT استخراج کنید. مراحل زیر برای انجام آن ذکر شده است.

  • ابتدا از کلاس Presentation برای بارگیری فایل ارائه استفاده کنید.
  • سپس، از روش Presentation.getSlides() برای دسترسی به مجموعه اسلایدها استفاده کنید.
  • برای هر اسلاید، با استفاده از روش ISlide.getShapes() به اشکال آن دسترسی پیدا کنید.
  • مراحل زیر را برای هر شکل در مجموعه انجام دهید:
    • بررسی کنید که آیا شکل یک شکل خودکار است و با یک تصویر پر شده است، سپس تصویر آن را با استفاده از روش getImage() استخراج کنید.
    • بررسی کنید که آیا شکل یک قاب عکس است، سپس تصویر آن را با استفاده از روش getImage() استخراج کنید.
    • در نهایت تصویر را به صورت فایل ذخیره کنید.

نمونه کد زیر نحوه استخراج تصاویر از اشکال در PPT با استفاده از جاوا را نشان می دهد.

// ارائه را بارگیری کنید
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;
  }
}

استخراج تصویر جاوا از پس‌زمینه اسلاید PPT

یکی دیگر از سناریوهای ممکن می تواند استخراج تصاویری باشد که فقط به عنوان پس زمینه اسلاید استفاده می شوند. مراحل زیر نحوه استخراج تصاویر پس زمینه اسلاید در جاوا را نشان می دهد.

  • ابتدا، ارائه را با استفاده از کلاس Presentation بارگذاری کنید.

  • سپس با استفاده از روش Presentation.getSlides() از میان اسلایدهای ارائه حلقه بزنید.

  • برای هر اسلاید مراحل زیر را انجام دهید:

    • با استفاده از روش ISlide.getBackground().getFillFormat().getFillType() بررسی کنید که آیا اسلاید دارای تصویر پس زمینه است.

    • اگر پس زمینه دارای تصویر است، با استفاده از روش getImage() تصویر را استخراج کنید.

    • با استفاده از روش ISlide.getLayoutSlide().getBackground().getFillFormat().getFillType() بررسی کنید که آیا اسلاید طرح بندی دارای تصویر پس زمینه است.

    • اگر پس‌زمینه اسلاید طرح‌بندی با یک عکس پر شده است، آن را با استفاده از روش getImage() استخراج کنید.

    • در نهایت تصویر استخراج شده را به صورت فایل ذخیره کنید.

نمونه کد زیر نحوه استخراج تصاویر از پس زمینه اسلاید در یک PPT در جاوا را نشان می دهد.

// ارائه را بارگیری کنید
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 برای جاوا بدون محدودیت ارزیابی ارائه می دهد. شما می توانید یکی برای خودتان بگیرید.

نتیجه

در این مقاله نحوه استخراج تصاویر از PowerPoint PPT/PPTX در جاوا را نشان داده ایم. علاوه بر این، نحوه استخراج تصاویر از پس زمینه شکل یا اسلاید را به طور جداگانه توضیح داده ایم. علاوه بر این، می‌توانید با مراجعه به مستندات درباره Aspose.Slides برای جاوا اطلاعات بیشتری کسب کنید. همچنین، می‌توانید سؤالات خود را در [تالار گفتمان20 ما ارسال کنید.

همچنین ببینید