API Moderne

Introduction

Historiquement, Aspose Slides a une dépendance à java.awt et possède dans l’API publique les classes suivantes de là-bas :

Depuis la version 24.4, cette API publique est déclarée obsolète.

Afin de se débarrasser des dépendances à ces classes, nous avons ajouté ce que l’on appelle “l’API Moderne” - c’est-à-dire l’API qui doit être utilisée à la place de l’obsolète, dont les signatures contiennent des dépendances sur BufferedImage. Graphics2D est déclaré obsolète et son support est supprimé de l’API publique de Slides.

La suppression de l’API publique obsolète avec des dépendances sur System.Drawing sera effectuée dans la version 24.8.

API Moderne

Les classes et énums suivantes ont été ajoutées à l’API publique :

  • IImage - représente l’image matricielle ou vectorielle.
  • ImageFormat - représente le format de fichier de l’image.
  • Images - méthodes pour instancier et travailler avec l’interface IImage.

Veuillez noter que IImage est jetable (il implémente l’interface IDisposable et son utilisation doit être entourée d’un using ou être libérée d’une autre manière pratique).

Un scénario typique d’utilisation de la nouvelle API peut ressembler à ceci :

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

# instancier une instance jetable de IImage à partir du fichier sur le disque.
image = Images.fromFile("image.png");

# créer une image PowerPoint en ajoutant une instance de IImage aux images de la présentation.
ppImage = pres.getImages().addImage(image);
image.dispose();

# ajouter une forme d'image sur la diapositive #1
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

# obtenir une instance de IImage représentant la diapositive #1.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));

# sauvegarder l'image sur le disque.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();

pres.dispose();

Remplacer l’ancien code par l’API Moderne

En général, vous devrez remplacer l’appel à l’ancienne méthode utilisant ImageIO par la nouvelle.

Ancien :

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

Nouveau :

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

Obtenir une miniature de diapositive

Code utilisant une API obsolète :

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

API Moderne :

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

Obtenir une miniature de forme

Code utilisant une API obsolète :

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

API Moderne :

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

Obtenir une miniature de présentation

Code utilisant une API obsolète :

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

API Moderne :

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

Ajouter une image à une présentation

Code utilisant une API obsolète :

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

API Moderne :

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éthodes à supprimer et leur remplacement dans l’API Moderne

Présentation

Signature de méthode Signature de méthode de remplacement
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)

Forme

Signature de méthode Signature de méthode de remplacement
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)

Diapositive

Signature de méthode Signature de méthode de remplacement
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) Sera complètement supprimé
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) Sera complètement supprimé
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) Sera complètement supprimé

Sortie

Signature de méthode Signature de méthode de remplacement
public final IOutputFile add(String path, BufferedImage image) public final IOutputFile add(String path, IImage image)

ImageCollection

Signature de méthode Signature de méthode de remplacement
public final IPPImage addImage(BufferedImage image) public final IPPImage addImage(IImage image)

PPImage

Signature de méthode Signature de méthode de remplacement
public final BufferedImage getSystemImage() public final IImage getImage()

PatternFormat

Signature de méthode Signature de méthode de remplacement
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

Signature de méthode Signature de méthode de remplacement
public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) public final IImage getTileIImage(Color background, Color foreground)

Le support de l’API pour Graphics2D sera supprimé

Les méthodes avec Graphics2D sont déclarées obsolètes et leur support sera supprimé de l’API publique.

La partie de l’API qui l’utilise sera supprimée :

Diapositive