Sunumlarda Görsellerle Çalışma — Aspose.Slides FOSS for Java
Aspose.Slides FOSS for Java, bir sunumun ortak görüntü koleksiyonuna resimler eklemenizi ve bunları PictureFrame şekilleri kullanarak slaytlarda görüntülemenizi sağlar. Görseller ayrıca FillType.PICTURE aracılığıyla şekil arka plan doldurmaları olarak da kullanılabilir.
Dosyadan Görüntü Ekleme
Görüntü baytlarını diskte yükleyin ve sunumun görüntü koleksiyonuna prs.getImages().addImage() ile ekleyin. Ardından görüntüyü bir slayta PictureFrame olarak yerleştirin:
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()‘e verilen dört konumsal argüman şunlardır: x, y, width, height puan cinsinden.
Baytlardan Görüntü Ekleme
Eğer zaten görüntü baytlarına sahipseniz (ör. bir URL’den indirilmiş veya bir veritabanından okunmuş), bunları doğrudan addImage()‘e gönderin:
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);
}Resim Çerçevesini Konumlandırma ve Boyutlandırma
addPictureFrame() tarafından döndürülen PictureFrame, tüm Shape geometri özelliklerini devralır ve oluşturulduktan sonra yeniden konumlandırılabilir:
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);
}Bir Görüntüyü Şekil Dolgusu Olarak Kullanma
Herhangi bir şekil (sadece PictureFrame değil) arka plan doldurması olarak bir görüntü kullanabilir. FillType.PICTURE ayarlayın ve görüntüyü getPictureFillFormat().getPicture().setImage()‘ye atayın:
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 görüntüyü tüm şekli dolduracak şekilde ölçeklendirir. Tekrarlayan desenler için TILE kullanın.
Slaytlar Arasında Birden Çok Görüntü Ekleme
prs.getImages()‘ye eklenen görseller tüm slaytlar arasında paylaşılır. Aynı IPPImage nesnesi, veriyi çoğaltmadan birden fazla slaytta kullanılabilir:
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);
}