Kuvien käsittely esityksissä — Aspose.Slides FOSS for Java
Aspose.Slides FOSS for Java antaa sinun upottaa kuvia esityksen jaettuun kuvakokoelmaan ja näyttää ne dioilla käyttäen PictureFrame‑muotoja. Kuvia voidaan myös käyttää muodon taustatäytteinä FillType.PICTURE‑menetelmällä.
Kuvan lisääminen tiedostosta
Lataa kuvan tavut levystä ja lisää ne esityksen kuvakokoelmaan prs.getImages().addImage() avulla. Sijoita sitten kuva diaan 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():n neljä sijaintiargumenttia ovat: x, y, width, height pisteinä.
Kuvan lisääminen tavuista
Jos sinulla on jo kuvan tavut (esim. ladattu URL‑osoitteesta tai luettu tietokannasta), anna ne suoraan 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);
}Kuvan kehyksen sijoittaminen ja koon määrittäminen
PictureFrame, jonka addPictureFrame() palauttaa, perii kaikki Shape geometriaan liittyvät ominaisuudet ja sen voi siirtää uudelleen luomisen jälkeen:
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);
}Kuvan käyttäminen muodon täytteenä
Mikä tahansa muoto (ei vain PictureFrame) voi käyttää kuvaa taustatäytteenä. Aseta FillType.PICTURE ja määritä kuva 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 skaalaa kuvaa täyttämään koko muodon. Käytä TILE toistuvia kuvioita varten.
Useiden kuvien lisääminen diojen välillä
prs.getImages():iin lisätyt kuvat jaetaan kaikkien diojen kesken. Sama IPPImage-objekti voidaan käyttää useilla dioilla ilman, että dataa kopioidaan:
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);
}