Nowoczesne API

Wprowadzenie

Historycznie Aspose Slides miał zależność od java.awt i w publicznym API udostępniał następujące klasy z tego pakietu:

Od wersji 24.4 to publiczne API jest oznaczone jako przestarzałe.

Aby usunąć zależności od tych klas, dodaliśmy tzw. „Nowoczesne API” – czyli API, które powinno być używane zamiast przestarzałego, którego sygnatury zawierały zależności od BufferedImage. Graphics2D jest oznaczone jako przestarzałe, a jego obsługa została usunięta z publicznego API Slides.

Usunięcie przestarzałego publicznego API zależnego od System.Drawing nastąpi w wydaniu 24.8.

Nowoczesne API

Dodano następujące klasy i wyliczenia do publicznego API:

  • IImage – reprezentuje obraz rastrowy lub wektorowy.
  • ImageFormat – reprezentuje format pliku obrazu.
  • Images – metody do tworzenia i pracy z interfejsem IImage.

Należy pamiętać, że IImage jest obiektem zwalnianym (implementuje interfejs IDisposable i jego użycie powinno być objęte blokiem using lub zwolnione w inny wygodny sposób).

Typowy scenariusz użycia nowego API może wyglądać następująco:

from asposeslides.api import Presentation, SaveFormat, Images, ShapeType, ImageFormat
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension

pres = Presentation();

# utwórz zwalnialny obiekt IImage z pliku na dysku.
image = Images.fromFile("image.png");

# utwórz obraz PowerPoint, dodając instancję IImage do obrazów prezentacji.
ppImage = pres.getImages().addImage(image);
image.dispose();

# dodaj kształt obrazu na slajdzie nr 1
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

# pobierz instancję IImage reprezentującą slajd nr 1.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));

# zapisz obraz na dysku.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();

pres.dispose();

Zamiana starego kodu na Nowoczesne API

Ogólnie należy zastąpić wywołanie starej metody korzystającej z ImageIO nową wersją.

Stary:

image_format = "PNG"
buffImage = pres.getSlides().get_Item(0).getThumbnail(Dimension(1920, 1080))
ImageIO.write(buffImage, image_format, File("image.png"))

Nowy:

slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
slideImage.save("image.png", ImageFormat.Png);

Pobieranie miniatury slajdu

Kod używający przestarzałego API:

from asposeslides.api import Presentation
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

slideImage = pres.getSlides().get_Item(0).getThumbnail();
image_format = "PNG"
ImageIO.write(slideImage, image_format, File("slide1.png"))

pres.dispose();

Nowoczesne API:

from asposeslides.api import Presentation, ImageFormat


pres = Presentation("pres.pptx");

slideImage = pres.getSlides().get_Item(0).getImage();
slideImage.save("slide1.png", ImageFormat.Png);
slideImage.dispose();

pres.dispose();

Pobieranie miniatury kształtu

Kod używający przestarzałego API:

from asposeslides.api import Presentation
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

shapeImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getThumbnail();
image_format = "PNG"
ImageIO.write(shapeImage, image_format, File("shape.png"))

pres.dispose();

Nowoczesne API:

from asposeslides.api import Presentation, ImageFormat


pres = Presentation("pres.pptx");

shapeImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
shapeImage.save("shape.png", ImageFormat.Png);
shapeImage.dispose();

pres.dispose();

Pobieranie miniatury prezentacji

Kod używający przestarzałego API:

from asposeslides.api import Presentation, RenderingOptions
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

image_format = "PNG"
rendering_options = RenderingOptions();
bitmaps = pres.getThumbnails(rendering_options, Dimension(1980, 1028));

for index in range(bitmaps.length):
    thumbnail = bitmaps[index];
    ImageIO.write(thumbnail, "PNG", File("slide" + str(index) + ".png"));
    
pres.dispose();

Nowoczesne API:

from asposeslides.api import Presentation, RenderingOptions, ImageFormat
from java.awt import Dimension


pres = Presentation("pres.pptx");

rendering_options = RenderingOptions();
images = pres.getImages(rendering_options, Dimension(1980, 1028));

for index in range(images.length):
    thumbnail = images[index];
    thumbnail.save("slide" + str(index) + ".png", ImageFormat.Png);
    thumbnail.dispose();

pres.dispose();

Dodawanie obrazu do prezentacji

Kod używający przestarzałego API:

from asposeslides.api import Presentation, ShapeType
from javax.imageio import ImageIO
from java.io import File


pres = Presentation();

bufferedImages = ImageIO.read(File("image.png"));
ppImage = pres.getImages().addImage(bufferedImages);

pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

pres.dispose();

Nowoczesne API:

from asposeslides.api import Presentation, ShapeType, Images
from java.awt import Dimension


pres = Presentation();

image = Images.fromFile("image.png");
ppImage = pres.getImages().addImage(image);
image.dispose();

pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

pres.dispose();

Metody, które zostaną usunięte i ich zamienniki w Nowoczesnym API

Presentation

Podpis metody Podpis metody zamiennika
public final BufferedImage[] getThumbnails(IRenderingOptions options) public final IImage[] getImages(IRenderingOptions options)
public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY)
public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) public final IImage[] getImages(IRenderingOptions options, int[] slides)
public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY)
public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize)
public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) public final IImage[] getImages(IRenderingOptions options, Dimension imageSize)

Shape

Podpis metody Podpis metody zamiennika
public final BufferedImage getThumbnail() public final IImage getImage()
public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) public final IImage getImage(int bounds, float scaleX, float scaleY)

Slide

Podpis metody Podpis metody zamiennika
public final BufferedImage getThumbnail() public final IImage getImage()
public final BufferedImage getThumbnail(float scaleX, float scaleY) public final IImage getImage(float scaleX, float scaleY)
public final BufferedImage getThumbnail(IRenderingOptions options) public final IImage getImage(IRenderingOptions options)
public final BufferedImage getThumbnail(IRenderingOptions options, float scaleX, float scaleY) public final IImage getImage(IRenderingOptions options)
public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) public final IImage getImage(IRenderingOptions options, Dimension imageSize)
public final BufferedImage getThumbnail(ITiffOptions options) public final IImage getImage(ITiffOptions options)
public final BufferedImage getThumbnail(Dimension imageSize) public final IImage getImage(Dimension imageSize)
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) Will be deleted completely
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) Will be deleted completely
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) Will be deleted completely

Output

Podpis metody Podpis metody zamiennika
public final IOutputFile add(String path, BufferedImage image) public final IOutputFile add(String path, IImage image)

ImageCollection

Podpis metody Podpis metody zamiennika
public final IPPImage addImage(BufferedImage image) public final IPPImage addImage(IImage image)

PPImage

Podpis metody Podpis metody zamiennika
public final BufferedImage getSystemImage() public final IImage getImage()

PatternFormat

Podpis metody Podpis metody zamiennika
public final BufferedImage getTileImage(Color styleColor) public final IImage getTile(Color styleColor)
public final BufferedImage getTileImage(Color background, Color foreground) public final IImage getTile(Color background, Color foreground)

PatternFormatEffectiveData

Podpis metody Podpis metody zamiennika
public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) public final IImage getTileIImage(Color background, Color foreground)

Obsługa Graphics2D w API zostanie wycofana

Metody wykorzystujące Graphics2D są oznaczone jako przestarzałe i ich obsługa zostanie usunięta z publicznego API.

Część API, która ich używa, zostanie usunięta:

Slide