प्रेजेंटेशन में इमेजेज के साथ काम करना — Aspose.Slides FOSS for Java
Aspose.Slides FOSS for Java आपको प्रस्तुति की साझा इमेज कलेक्शन में इमेज एम्बेड करने और PictureFrame शेप्स का उपयोग करके स्लाइड्स पर प्रदर्शित करने की अनुमति देता है। इमेजेज़ को FillType.PICTURE के माध्यम से शेप बैकग्राउंड फ़िल्स के रूप में भी उपयोग किया जा सकता है।
फ़ाइल से छवि जोड़ना
डिस्क से इमेज बाइट्स लोड करें और उन्हें प्रस्तुति की इमेज कलेक्शन में 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 बिंदुओं में।
बाइट्स से इमेज जोड़ना
यदि आपके पास पहले से ही इमेज बाइट्स हैं (जैसे, 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 का उपयोग करें।
स्लाइड्स में कई छवियों को जोड़ना
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);
}