Cách Thêm Hình Ảnh vào Các Slide PowerPoint trong Java
Hình ảnh trong Aspose.Slides FOSS được nhúng dưới dạng khung hình, các hình dạng chứa hình ảnh và có thể được định vị, thay đổi kích thước và tạo kiểu giống như bất kỳ hình dạng nào khác. Dữ liệu hình ảnh được lưu một lần trong bộ sưu tập prs.getImages() và được tham chiếu bởi khung.
Điều kiện tiên quyết
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Thêm hình ảnh từ tệp
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);
}Chữ ký addPictureFrame:
addPictureFrame(shapeType, x, y, width, height, image) -> IPictureFrameTất cả các kích thước đều tính bằng points (1 point = 1/72 inch). Đối với một slide tiêu chuẩn kích thước 10 x 7,5 inch, không gian tọa độ là 720 x 540 points.
Thêm một hình ảnh từ luồng
Nếu bạn đã có hình ảnh dưới dạng InputStream (ví dụ: tải xuống từ URL hoặc đọc từ cơ sở dữ liệu):
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);
}Thêm Nhiều Hình Ảnh vào Các Slide Khác Nhau
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);
}Đếm hình ảnh trong một bản trình bày hiện có
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)");
}Bộ sưu tập prs.getImages() được chia sẻ trên tất cả các slide: các byte hình ảnh giống nhau chỉ được lưu một lần ngay cả khi khung ảnh xuất hiện trên nhiều slide.