모던 API
소개
Historically, Aspose Slides는 java.awt에 대한 의존성이 있었으며 공개 API에 다음 클래스가 포함되어 있습니다:
버전 24.4부터 이 공개 API는 사용 중단(deprecated)으로 선언되었습니다.
이러한 클래스에 대한 의존성을 없애기 위해 이른바 “Modern API"를 추가했습니다. 즉, 사용 중단된 API 대신 사용해야 하는 API이며, 서명에 BufferedImage에 대한 의존성이 포함됩니다. Graphics2D는 사용 중단으로 선언되었으며, 공개 Slides API에서 지원이 제거되었습니다.
System.Drawing에 대한 의존성을 가진 사용 중단된 공개 API는 24.8 릴리스에서 제거될 예정입니다.
Modern API
다음 클래스 및 열거형이 공개 API에 추가되었습니다:
- IImage - 래스터 또는 벡터 이미지를 나타냅니다.
- ImageFormat - 이미지 파일 형식을 나타냅니다.
- Images - IImage 인터페이스를 인스턴스화하고 작업하기 위한 메서드들.
참고: IImage는 IDisposable 인터페이스를 구현하므로 disposable이며, 사용 시 using 블록으로 감싸거나 다른 편리한 방법으로 Dispose해야 합니다.
새 API를 사용하는 일반적인 시나리오는 다음과 같습니다:
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();
# 디스크에 있는 파일에서 IImage의 disposable 인스턴스를 생성합니다.
image = Images.fromFile("image.png");
# 프레젠테이션 이미지에 IImage 인스턴스를 추가하여 PowerPoint 이미지를 만듭니다.
ppImage = pres.getImages().addImage(image);
image.dispose();
# 슬라이드 #1에 그림 형태를 추가합니다.
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);
# 슬라이드 #1을 나타내는 IImage 인스턴스를 가져옵니다.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
# 이미지를 디스크에 저장합니다.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();
pres.dispose();
Modern API로 기존 코드 교체
일반적으로 ImageIO를 사용한 기존 메서드 호출을 새로운 메서드로 교체해야 합니다.
기존:
image_format = "PNG"
buffImage = pres.getSlides().get_Item(0).getThumbnail(Dimension(1920, 1080))
ImageIO.write(buffImage, image_format, File("image.png"))
새로운:
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
slideImage.save("image.png", ImageFormat.Png);
슬라이드 썸네일 가져오기
사용 중단된 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();
도형 썸네일 가져오기
사용 중단된 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();
프레젠테이션 썸네일 가져오기
사용 중단된 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();
프레젠테이션에 그림 추가
사용 중단된 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();
Modern API에서 제거될 메서드와 대체 메서드
Presentation
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| 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
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| 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
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| 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
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) |
ImageCollection
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) |
PPImage
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| public final BufferedImage getSystemImage() | public final IImage getImage() |
PatternFormat
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| 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
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) |
Graphics2D에 대한 API 지원 중단 예정
Graphics2D를 사용하는 메서드는 사용 중단으로 선언되었으며, 공개 API에서 지원이 제거될 예정입니다.
이를 사용하는 API 부분이 제거됩니다:
- 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)