چگونه تصاویر را به اسلایدهای پاورپوینت در جاوا اضافه کنیم

چگونه تصاویر را به اسلایدهای پاورپوینت در جاوا اضافه کنیم

تصاویر در Aspose.Slides FOSS به‌صورت قاب‌های تصویر، اشکالی که یک تصویر را نگه می‌دارند و می‌توانند مانند هر شکل دیگری موقعیت‌یابی، تغییر اندازه و استایل داده شوند، جاسازی می‌شوند. داده‌های تصویر یک‌بار در مجموعه prs.getImages() ذخیره می‌شود و توسط قاب ارجاع داده می‌شود.


پیش‌نیازها

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

افزودن تصویر از یک فایل

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IPPImage;
import org.aspose.slides.foss.IPictureFrame;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Paths;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    // Load image into the presentation's image collection
    byte[] imageData = Files.readAllBytes(Paths.get("photo.jpg"));
    IPPImage img = prs.getImages().addImage(imageData);

    // Add a picture frame at (x=50, y=50, width=400, height=300) in points
    IPictureFrame frame = slide.getShapes().addPictureFrame(
        ShapeType.RECTANGLE,
        50, 50, 400, 300,
        img
    );

    prs.save("with-image.pptx", SaveFormat.PPTX);
}

امضای addPictureFrame:

addPictureFrame(shapeType, x, y, width, height, image) -> IPictureFrame

تمام ابعاد بر حسب نقطه‌ها (1 نقطه = 1/72 اینچ). برای یک اسلاید استاندارد 10 × 7.5 اینچی، فضای مختصاتی 720 × 540 نقطه است.


افزودن تصویر از یک جریان

اگر تصویر را قبلاً به صورت InputStream دارید (مثلاً از یک URL دانلود کرده‌اید یا از یک پایگاه داده خوانده‌اید):

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IPPImage;
import org.aspose.slides.foss.IPictureFrame;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.io.FileInputStream;

try (Presentation prs = new Presentation();
     FileInputStream fis = new FileInputStream("logo.png")) {
    IPPImage img = prs.getImages().addImage(fis);

    prs.getSlides().get(0).getShapes().addPictureFrame(
        ShapeType.RECTANGLE,
        200, 100, 300, 200,
        img
    );
    prs.save("logo-slide.pptx", SaveFormat.PPTX);
}

افزودن چندین تصویر به اسلایدهای مختلف

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IPPImage;
import org.aspose.slides.foss.IPictureFrame;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Paths;

String[] imageFiles = {"slide1.jpg", "slide2.jpg", "slide3.jpg"};

try (Presentation prs = new Presentation()) {
    ILayoutSlide layout = prs.getSlides().get(0).getLayoutSlide();

    // Ensure enough slides exist
    while (prs.getSlides().size() < imageFiles.length) {
        prs.getSlides().addEmptySlide(layout);
    }

    for (int i = 0; i < imageFiles.length; i++) {
        if (!Files.exists(Paths.get(imageFiles[i]))) continue;
        byte[] data = Files.readAllBytes(Paths.get(imageFiles[i]));
        IPPImage img = prs.getImages().addImage(data);
        prs.getSlides().get(i).getShapes().addPictureFrame(
            ShapeType.RECTANGLE, 0, 0, 720, 540, img
        );
    }

    prs.save("multi-image.pptx", SaveFormat.PPTX);
}

شمارش تصاویر در یک ارائه موجود

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IPPImage;
import org.aspose.slides.foss.IPictureFrame;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation("with-image.pptx")) {
    System.out.println("Presentation contains "
        + prs.getImages().size() + " image(s)");
}

مجموعه prs.getImages() در تمام اسلایدها به اشتراک گذاشته می‌شود: بایت‌های تصویر یک‌بار ذخیره می‌شوند حتی اگر قاب تصویر در چندین اسلاید ظاهر شود.


موارد مرتبط

 فارسی