Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant Java

Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant Java

Aspose.Slides FOSS paveikslai yra įterpiami kaip paveikslų rėmeliai, formos, kurios talpina vaizdą ir gali būti pozicionuojamos, keičiamas dydžiai ir stiliuojamos kaip bet kuri kita forma. Vaizdo duomenys yra saugomi vieną kartą prs.getImages() kolekcijoje ir nurodomi rėmelio.


Būtinosios sąlygos

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Pridėti paveikslėlį iš failo

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 parašas:

addPictureFrame(shapeType, x, y, width, height, image) -> IPictureFrame

Visi matmenys yra taškai (1 taškas = 1/72 colio). Standartinei 10 x 7.5 colių skaidrei koordinačių erdvė yra 720 x 540 taškų.


Pridėti paveikslėlį iš srauto

Jei jau turite paveikslą kaip InputStream (pvz., atsisiųstą iš URL arba perskaitytą iš duomenų bazės):

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

Pridėti kelis paveikslėlius į skirtingas skaidres

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

Suskaičiuoti paveikslėlius esamo pristatyme

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() kolekcija yra bendrinama visose skaidrėse: tas pats paveikslėlio baitų rinkinys saugomas vieną kartą, net jei paveikslėlio rėmelis pasirodo keliose skaidrėse.


Žr. taip pat

 Lietuvių