API Moderna

Introdução

Historicamente, o Aspose Slides tem dependência de java.awt e expõe na API pública as seguintes classes desse pacote:

A partir da versão 24.4, essa API pública foi declarada obsoleta.

Para eliminar as dependências dessas classes, adicionamos a chamada “Modern API” – ou seja, a API que deve ser usada em vez da obsoleta, cujas assinaturas não dependem de BufferedImage. Graphics2D foi declarada obsoleta e seu suporte foi removido da API pública do Slides.

A remoção da API pública obsoleta com dependências de System.Drawing ocorrerá na versão 24.8.

Modern API

Foram adicionadas as seguintes classes e enums à API pública:

  • IImage – representa a imagem raster ou vetorial.
  • ImageFormat – representa o formato de arquivo da imagem.
  • Images – métodos para instanciar e manipular a interface IImage.

Observe que IImage é descartável (implementa a interface IDisposable e seu uso deve ser encapsulado em using ou descartado de outra forma conveniente).

Um cenário típico de uso da nova API pode ser o seguinte:

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

# instanciar uma instância descartável de IImage a partir do arquivo no disco.
image = Images.fromFile("image.png");

# criar uma imagem PowerPoint adicionando uma instância de IImage às imagens da apresentação.
ppImage = pres.getImages().addImage(image);
image.dispose();

# adicionar uma forma de imagem no slide #1
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

# obter uma instância de IImage que representa o slide #1.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));

# salvar a imagem no disco.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();

pres.dispose();

Substituindo código antigo pela Modern API

De modo geral, você precisará substituir a chamada ao método antigo que usava ImageIO pela nova.

Antigo:

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

Novo:

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

Obtendo miniatura de um slide

Código usando API obsoleta:

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

Modern 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();

Obtendo miniatura de uma forma

Código usando API obsoleta:

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

Modern 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();

Obtendo miniatura de uma apresentação

Código usando API obsoleta:

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

Modern 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();

Adicionando uma imagem a uma apresentação

Código usando API obsoleta:

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

Modern 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();

Métodos que serão removidos e suas substituições na Modern API

Presentation

Assinatura do Método Assinatura do Método de Substituição
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

Assinatura do Método Assinatura do Método de Substituição
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

Assinatura do Método Assinatura do Método de Substituição
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) Será excluído completamente
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) Será excluído completamente
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) Será excluído completamente

Output

Assinatura do Método Assinatura do Método de Substituição
public final IOutputFile add(String path, BufferedImage image) public final IOutputFile add(String path, IImage image)

ImageCollection

Assinatura do Método Assinatura do Método de Substituição
public final IPPImage addImage(BufferedImage image) public final IPPImage addImage(IImage image)

PPImage

Assinatura do Método Assinatura do Método de Substituição
public final BufferedImage getSystemImage() public final IImage getImage()

PatternFormat

Assinatura do Método Assinatura do Método de Substituição
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

Assinatura do Método Assinatura do Método de Substituição
public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) public final IImage getTileIImage(Color background, Color foreground)

O suporte da API a Graphics2D será descontinuado

Métodos que utilizam Graphics2D foram declarados obsoletos e seu suporte será removido da API pública.

A parte da API que o utiliza será removida:

Slide