Πώς να προσθέσετε εικόνες σε διαφάνειες PowerPoint με Java
Οι εικόνες στο Aspose.Slides FOSS ενσωματώνονται ως picture frames, σχήματα που κρατούν μια εικόνα και μπορούν να τοποθετηθούν, να αλλάξουν μέγεθος και να μορφοποιηθούν όπως οποιοδήποτε άλλο σχήμα. Τα δεδομένα της εικόνας αποθηκεύονται μία φορά στη συλλογή 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Όλες οι διαστάσεις είναι σε points (1 point = 1/72 ίντσα). Για μια τυπική διαφάνεια 10 x 7,5 ίντσες, ο χώρος συντεταγμένων είναι 720 x 540 points.
Προσθήκη εικόνας από ροή
Εάν έχετε ήδη την εικόνα ως 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() μοιράζεται σε όλες τις διαφάνειες: τα ίδια bytes εικόνας αποθηκεύονται μία φορά ακόμη και αν το πλαίσιο εικόνας εμφανίζεται σε πολλές διαφάνειες.