Πώς να προσθέσετε εικόνες σε PowerPoint διαφάνειες στο Java

Πώς να προσθέσετε εικόνες σε PowerPoint διαφάνειες στο Java

Οι εικόνες στο Aspose.Slides FOSS είναι ενσωματωμένες ως Φωτογραφίες Frame, σχήματα που κρατούν μια εικόνα και μπορούν να τοποθετηθούν, αναδιαμορφωθούν και στυλ όπως οποιαδήποτε άλλη μορφή. τα δεδομένα εικόνας αποθηκεύονται μία φορά στο prs.getImages() Συλλογή και αναφορά από το πλαίσιο.


Προϋποθέσεις

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>26.7.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 x 7.5 ιντσών σάρωση, το χώρο συντονισμού είναι 720 x 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);
}

Προσθήκη πολλαπλών εικόνων σε διαφορετικά Slides

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() Η συλλογή μοιράζεται σε όλα τα σκιές: το ίδιο byte εικόνας αποθηκεύεται μία φορά, ακόμη και αν η εικόνα εμφανίζεται σε πολλαπλές σκιασεις.


Δείτε επίσης

 Ελληνικά