Εργασία με εικόνες σε παρουσιάσεις Aspose.Slides FOSS για Java
Aspose.Slides FOSS for Java lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame Φωτογραφίες μπορούν επίσης να χρησιμοποιηθούν ως φόρμα φόντου συμπληρώματα μέσω FillType.PICTURE.
Προσθήκη εικόνας από το αρχείο
Κατεβάστε τα byte εικόνας από το δίσκο και προσθέστε αυτά στη συλλογή εικόνων της παρουσίασης με prs.getImages().addImage().Στη συνέχεια, τοποθετήστε την εικόνα σε ένα σάιτ ως μια PictureFrame:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;
try (Presentation prs = new Presentation()) {
// Add the image to the shared collection
byte[] imageData = Files.readAllBytes(Path.of("logo.png"));
var img = prs.getImages().addImage(imageData);
// Place it on the slide as a PictureFrame
var slide = prs.getSlides().get(0);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 300, 200, img);
prs.save("with-image.pptx", SaveFormat.PPTX);
}Οι τέσσερις θετικές διαφορές για την addPictureFrame() Είναι : x, y, width, height σε σημεία .
Προσθήκη εικόνας από Bytes
Εάν έχετε ήδη bytes εικόνας (π.χ., λήψη από μια URL ή ανάγνωση από βάση δεδομένων), μεταβείτε απευθείας σε addImage():
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;
// Simulate having bytes in memory
byte[] imageBytes = Files.readAllBytes(Path.of("photo.jpg"));
try (Presentation prs = new Presentation()) {
var img = prs.getImages().addImage(imageBytes);
prs.getSlides().get(0).getShapes().addPictureFrame(ShapeType.RECTANGLE, 100, 80, 400, 250, img);
prs.save("from-bytes.pptx", SaveFormat.PPTX);
}Τοποθεσία και διάσταση ενός PictureFrame
Η PictureFrame Επιστρέφεται από addPictureFrame() Κληρονόμος όλων Shape γεωμετρικές ιδιότητες και μπορεί να επαναπροσδιοριστεί μετά τη δημιουργία:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;
try (Presentation prs = new Presentation()) {
byte[] imageData = Files.readAllBytes(Path.of("photo.jpg"));
var img = prs.getImages().addImage(imageData);
var pf = prs.getSlides().get(0).getShapes().addPictureFrame(ShapeType.RECTANGLE, 0, 0, 100, 100, img);
// Reposition and resize after creation
pf.setX(50);
pf.setY(100);
pf.setWidth(350);
pf.setHeight(250);
prs.save("positioned.pptx", SaveFormat.PPTX);
}Χρησιμοποιώντας μια εικόνα ως φόρμα συμπλήρωσης
Οποιαδήποτε μορφή (όχι μόνο PictureFrame) μπορεί να χρησιμοποιήσει μια εικόνα ως συμπλήρωση του φόντου της. FillType.PICTURE και να αποδώσει την εικόνα σε getPictureFillFormat().getPicture().setImage():
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.PictureFillMode;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;
try (Presentation prs = new Presentation()) {
byte[] imageData = Files.readAllBytes(Path.of("background.png"));
var img = prs.getImages().addImage(imageData);
var slide = prs.getSlides().get(0);
var shape = slide.getShapes().addAutoShape(ShapeType.ROUND_CORNER_RECTANGLE, 50, 50, 400, 250);
shape.getFillFormat().setFillType(FillType.PICTURE);
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.STRETCH);
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(img);
prs.save("picture-fill.pptx", SaveFormat.PPTX);
}PictureFillMode.STRETCH Στάση της εικόνας για να συμπληρώσετε ολόκληρη τη μορφή. TILE Για επαναλαμβανόμενα πρότυπα.
Προσθήκη πολλαπλών εικόνων μέσω Slides
Φωτογραφίες προστέθηκαν σε prs.getImages() Συνολικά, τα δίσκια είναι όλα παρόμοια. IPPImage Το αντικείμενο μπορεί να χρησιμοποιηθεί σε πολλαπλές σάκλες χωρίς την επανάληψη των δεδομένων:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;
try (Presentation prs = new Presentation()) {
byte[] logoData = Files.readAllBytes(Path.of("logo.png"));
var logo = prs.getImages().addImage(logoData);
// Add the same image to the first slide
prs.getSlides().get(0).getShapes().addPictureFrame(ShapeType.RECTANGLE, 600, 10, 100, 40, logo);
prs.save("shared-image.pptx", SaveFormat.PPTX);
}