Modern API로 이미지 처리 강화
소개
Aspose.Slides for Python 공개 API는 현재 다음 aspose.pydrawing 유형에 의존합니다:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
버전 24.4부터 이 공개 API는 변경 사항 때문에 사용 중단됨입니다.
aspose.pydrawing을 공개 API에서 제거하기 위해 Modern API를 도입했습니다. aspose.pydrawing.Image와 aspose.pydrawing.Bitmap을 사용하는 메서드는 사용 중단되었으며 Modern API 동등 메서드로 교체해야 합니다. aspose.pydrawing.Graphics를 사용하는 메서드는 사용 중단되었으며 직접적인 Modern API 대체가 없습니다.
현재 버전에서는 aspose.pydrawing에 의존하는 공개 API를 레거시/사용 중단으로 간주하고, 새 코드를 작성하거나 기존 이미지 처리 워크플로를 마이그레이션할 때 Modern API를 사용하십시오.
Modern API
다음 클래스와 열거형이 공개 API에 추가되었습니다:
- aspose.slides.IImage - 래스터 또는 벡터 이미지를 나타냅니다.
- aspose.slides.ImageFormat - 이미지 파일 형식을 나타냅니다.
- aspose.slides.Images - IImage을 만들고 작업하는 메서드를 제공합니다.
단일 슬라이드나 도형을 렌더링하려면 get_image를 사용하십시오. 여러 프레젠테이션 슬라이드를 렌더링하려면 get_images를 사용하십시오. 이미지를 로드하려면 Images 메서드를 사용하고, 프레젠테이션에 추가하려면 add_image와 IImage를, 기존 프레젠테이션 이미지를 업데이트하려면 replace_image와 IImage를 사용하십시오.
새 API의 전형적인 사용 시나리오는 다음과 같습니다:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with slides.Images.from_file("image.png") as image:
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
with slide.get_image(drawing.Size(1920, 1080)) as slide_image:
slide_image.save("slide1.jpeg", slides.ImageFormat.JPEG)
구식 코드를 Modern API로 교체
새 IImage 클래스는 aspose.pydrawing.Image와 aspose.pydrawing.Bitmap 클래스의 별도 API를 반영합니다. 대부분의 경우 aspose.pydrawing을 사용하는 메서드 호출을 Modern API 동등 메서드로 교체하면 됩니다.
슬라이드 썸네일 가져오기
사용 중단된 API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
Modern API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image() as image:
image.save("slide1.png")
도형 썸네일 가져오기
사용 중단된 API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
shape.get_thumbnail().save("shape.png")
Modern API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
with shape.get_image() as image:
image.save("shape.png")
프레젠테이션 썸네일 가져오기
사용 중단된 API:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("sample.pptx") as presentation:
thumbnails = presentation.get_thumbnails(slides.export.RenderingOptions(), drawing.Size(1980, 1028))
for index, thumbnail in enumerate(thumbnails):
thumbnail.save(f"slide_{index}.png", drawing.imaging.ImageFormat.png)
Modern API:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("sample.pptx") as presentation:
thumbnails = presentation.get_images(slides.export.RenderingOptions(), drawing.Size(1980, 1028))
for index, thumbnail in enumerate(thumbnails):
thumbnail.save(f"slide_{index}.png", slides.ImageFormat.PNG)
프레젠테이션에 그림 추가
사용 중단된 API:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation() as presentation:
slide = presentation.slides[0]
image = drawing.Image.from_file("image.png")
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
Modern API:
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with slides.Images.from_file("image.png") as image:
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
제거될 메서드 및 속성 및 해당 Modern 대체 항목
Presentation 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| get_thumbnails(options) | get_images(options) |
| get_thumbnails(options, slides) | get_images(options, slides) |
| get_thumbnails(options, scale_x, scale_y) | get_images(options, scale_x, scale_y) |
| get_thumbnails(options, slides, scale_x, scale_y) | get_images(options, slides, scale_x, scale_y) |
| get_thumbnails(options, image_size) | get_images(options, image_size) |
| get_thumbnails(options, slides, image_size) | get_images(options, slides, image_size) |
| save(fname, format, response, show_inline) | Modern API 대체 없음 |
| save(fname, format, options, response, show_inline) | Modern API 대체 없음 |
| print() | Modern API 대체 없음 |
| print(printer_settings) | Modern API 대체 없음 |
| print(printer_name) | Modern API 대체 없음 |
| print(printer_settings, pres_name) | Modern API 대체 없음 |
Slide 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(scale_x, scale_y) | get_image(scale_x, scale_y) |
| get_thumbnail(image_size) | get_image(image_size) |
| get_thumbnail(options) | get_image(options: ITiffOptions) |
| get_thumbnail(options) | get_image(options: IRenderingOptions) |
| get_thumbnail(options, scale_x, scale_y) | get_image(options, scale_x, scale_y) |
| get_thumbnail(options, image_size) | get_image(options, image_size) |
| render_to_graphics(options, graphics) | Modern API 대체 없음 |
| render_to_graphics(options, graphics, scale_x, scale_y) | Modern API 대체 없음 |
| render_to_graphics(options, graphics, rendering_size) | Modern API 대체 없음 |
Shape 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
ImageCollection 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
PPImage 클래스
| 메서드/속성 서명 | 대체 메서드/속성 서명 |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
ImageWrapperFactory 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
PatternFormat 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
IPatternFormatEffectiveData 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Output 클래스
| 메서드 서명 | 대체 메서드 서명 |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
aspose.pydrawing.Graphics에 대한 API 지원
aspose.pydrawing.Graphics를 사용하는 메서드는 사용 중단되었으며 직접적인 Modern API 대체가 없습니다.
aspose.pydrawing.Graphics에 렌더링하는 API 대신 Modern API 이미지 렌더링 메서드를 사용하십시오:
aspose.pydrawing.Slide.render_to_graphics(options, graphics)aspose.pydrawing.Slide.render_to_graphics(options, graphics, scale_x, scale_y)aspose.pydrawing.Slide.render_to_graphics(options, graphics, rendering_size)
자주 묻는 질문
왜 aspose.pydrawing.Graphics가 제외되었나요?
aspose.pydrawing.Graphics에 대한 지원은 렌더링과 이미지 작업을 통합하고 플랫폼 별 종속성을 없애며 IImage을 사용한 크로스 플랫폼 접근 방식으로 전환하기 위해 공개 API에서 사용 중단되었습니다. aspose.pydrawing.Graphics에 렌더링하는 대신 get_image 또는 get_images를 사용하십시오.
IImage가 aspose.pydrawing.Image/aspose.pydrawing.Bitmap에 비해 실용적인 장점은 무엇인가요?
IImage는 래스터와 벡터 이미지를 모두 다루는 작업을 통합하고, ImageFormat을 통해 다양한 형식으로 저장을 간소화하며, pydrawing에 대한 의존성을 줄이고 환경 간 코드 휴대성을 높여줍니다.
Modern API가 썸네일 생성 성능에 영향을 미칠까요?
get_thumbnail을 get_image로 전환해도 시나리오가 악화되지 않습니다. 새로운 메서드는 옵션 및 크기와 함께 이미지를 생성하는 동일한 기능을 제공하며, 렌더링 옵션 지원도 유지합니다. 구체적인 이득이나 감소는 시나리오에 따라 다르지만 기능적으로는 동일합니다.