Darbas su vaizdais pristatymuose — Aspose.Slides FOSS for Java

Aspose.Slides FOSS for Java leidžia įterpti vaizdus į pristatymo bendrą vaizdų kolekciją ir rodyti juos skaidrėse naudojant PictureFrame formas. Vaizdus taip pat galima naudoti kaip formų fono užpildus per FillType.PICTURE.


Pridedamas paveikslėlis iš failo

Įkelkite vaizdo baitus iš disko ir pridėkite juos prie pristatymo vaizdų kolekcijos naudodami prs.getImages().addImage(). Tada padėkite vaizdą skaidrėje kaip 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);
}

Keturi poziciniai argumentai addPictureFrame() yra: x, y, width, height taškais.


Pridėti paveikslėlį iš baitų

Jei jau turite paveikslėlio baitus (pvz., atsisiųstus iš URL arba perskaitytus iš duomenų bazės), perduokite juos tiesiogiai 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);
}

Paveikslėlio rėmo pozicionavimas ir dydžio nustatymas

PictureFrame, grąžintas addPictureFrame(), paveldi visas Shape geometrijos savybes ir gali būti perkeliamas po sukūrimo:

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);
}

Naudojant paveikslėlį kaip figūros užpildą

Bet kuri forma (ne tik PictureFrame) gali naudoti paveikslėlį kaip fono užpildą. Nustatykite FillType.PICTURE ir priskirkite paveikslėlį 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 keičia paveikslą, kad jis užpildytų visą formą. Naudokite TILE pakartojimams.


Pridėti kelias nuotraukas per skaidres

Į prs.getImages() pridėti vaizdai yra bendrinami visose skaidrėse. Tas pats IPPImage objektas gali būti naudojamas keliose skaidrėse be duomenų dubliavimo:

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);
}

Žr. taip pat

 Lietuvių