كيفية إضافة الصور إلى شرائح PowerPoint في Java
تُدمج الصور في 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/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() مشتركة عبر جميع الشرائح: يتم تخزين بايتات الصورة نفسها مرة واحدة حتى إذا ظهر إطار الصورة في عدة شرائح.