Modern API
Introduction
Historically, Aspose Slides has a dependency on java.awt and has in the public API the following classes from there:
As of version 24.4, this public API is declared deprecated.
In order to get rid of dependencies on these classes, we added the so-called “Modern API” - i.e. the API that should be used instead of the deprecated one, whose signatures contain dependencies on BufferedImage. Graphics2D is declared deprecated and its support is removed from the public Slides API.
Removal of the deprecated public API with dependencies on System.Drawing will be in release 24.8.
Modern API
Added the following classes and enums to the public API:
- IImage - represents the raster or vector image.
- ImageFormat - represents the file format of the image.
- Images - methods to instantiate and work with the IImage interface.
Please note that IImage is disposable (it implements the IDisposable interface and its use should be wrapped in using or dispose-it in another convenient way).
A typical scenario of using the new API may look as follows:
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();
# instantiate a disposable instance of IImage from the file on the disk.
image = Images.fromFile("image.png");
# create a PowerPoint image by adding an instance of IImage to the presentation's images.
ppImage = pres.getImages().addImage(image);
image.dispose();
# add a picture shape on the slide #1
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);
# get an instance of the IImage representing slide #1.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
# save the image on the disk.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();
pres.dispose();
Replacing old code with Modern API
In general, you will need to replace the call to the old method using ImageIO with the new one.
Old:
image_format = "PNG"
buffImage = pres.getSlides().get_Item(0).getThumbnail(Dimension(1920, 1080))
ImageIO.write(buffImage, image_format, File("image.png"))
New:
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
slideImage.save("image.png", ImageFormat.Png);
Getting a slide thumbnail
Code using a deprecated 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();
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();
Getting a shape thumbnail
Code using a deprecated 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();
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();
Getting a presentation thumbnail
Code using a deprecated 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();
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();
Adding a picture to a presentation
Code using a deprecated 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();
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();
Methods to be removed and their replacement in Modern API
Presentation
Method Signature | Replacement Method Signature |
---|---|
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
Method Signature | Replacement Method Signature |
---|---|
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
Method Signature | Replacement Method Signature |
---|---|
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
Method Signature | Replacement Method Signature |
---|---|
public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) |
ImageCollection
Method Signature | Replacement Method Signature |
---|---|
public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) |
PPImage
Method Signature | Replacement Method Signature |
---|---|
public final BufferedImage getSystemImage() | public final IImage getImage() |
PatternFormat
Method Signature | Replacement Method Signature |
---|---|
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
Method Signature | Replacement Method Signature |
---|---|
public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) |
API support for Graphics2D will be discontinued
Methods with Graphics2D are declared deprecated and their support will be removed from the public API.
The part of the API that uses it will be removed:
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)