Современное API

Введение

На данный момент библиотека Aspose.Slides для Python через .NET имеет зависимости в своем публичном API от следующих классов из aspose.pydrawing:

  • aspose.pydrawing.Graphics
  • aspose.pydrawing.Image
  • aspose.pydrawing.Bitmap
  • aspose.pydrawing.printing.PrinterSettings

Начиная с версии 24.4, этот публичный API объявлен устаревшим из-за изменений в публичном API Aspose.Slides для .NET.

Для того чтобы избавиться от зависимостей на aspose.pydrawing в публичном API, мы добавили так называемое “Современное API”. Методы с aspose.pydrawing.Image и aspose.pydrawing.Bitmap объявлены устаревшими и будут заменены соответствующими методами из Современного API. Методы с aspose.pydrawing.Graphics объявлены устаревшими, и их поддержка будет удалена из публичного API.

Удаление устаревшего публичного API с зависимостями от aspose.pydrawing будет произведено в версии 24.8.

Современное API

В публичный API добавлены следующие классы и перечисления:

  • aspose.slides.IImage - представляет растровое или векторное изображение.
  • aspose.slides.ImageFormat - представляет формат файла изображения.
  • aspose.slides.Images - методы для создания и работы с интерфейсом IImage.

Типичный сценарий использования нового API может выглядеть следующим образом:

import aspose.slides as slides
import aspose.pydrawing as drawing

with slides.Presentation() as pres:
    image = slides.Images.from_file("image.png")
    pp_image = pres.images.add_image(image)
    pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10.0, 10.0, 100.0, 100.0, pp_image)
    with pres.slides[0].get_image(drawing.Size(1920, 1080)) as slide_image:
        slide_image.save("slide1.jpeg", slides.ImageFormat.JPEG)

Замена старого кода на Современное API

Для упрощения перехода интерфейс нового IImage повторяет отдельные сигнатуры классов Image и Bitmap. В общем, вам просто нужно будет заменить вызов старого метода, используя aspose.pydrawing, на новый.

Получение миниатюры слайда

Код, использующий устаревший API:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    pres.slides[0].get_thumbnail().save("slide1.png")

Современное API:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    with pres.slides[0].get_image() as image:
        image.save("slide1.png")

Получение миниатюры фигуры

Код, использующий устаревший API:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    pres.slides[0].shapes[0].get_thumbnail().save("shape.png")

Современное API:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    with pres.slides[0].shapes[0].get_image() as image:
        image.save("shape.png")

Получение миниатюры презентации

Код, использующий устаревший API:

import aspose.slides as slides
import aspose.pydrawing as drawing

with slides.Presentation("pres.pptx") as pres:
    thumbnails = pres.get_thumbnails(slides.export.RenderingOptions(), drawing.Size(1980, 1028))

    for idx, thumbnail in enumerate(thumbnails):
        thumbnail.save(f"slide_{idx}.png", drawing.imaging.ImageFormat.png)

Современное API:

import aspose.slides as slides
import aspose.pydrawing as drawing

with slides.Presentation("pres.pptx") as pres:
    thumbnails = pres.get_images(slides.export.RenderingOptions(), drawing.Size(1980, 1028))

    for idx, thumbnail in enumerate(thumbnails):
        thumbnail.save(f"slide_{idx}.png", slides.ImageFormat.PNG)

Добавление изображения в презентацию

Код, использующий устаревший API:

import aspose.slides as slides
import aspose.pydrawing as drawing

with slides.Presentation() as pres:
    image = drawing.Image.from_file("image.png")
    pp_image = pres.images.add_image(image)
    pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10.0, 10.0, 100.0, 100.0, pp_image)

Современное API:

import aspose.slides as slides

with slides.Presentation() as pres:
    image = slides.Images.from_file("image.png")
    pp_image = pres.images.add_image(image)
    pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10.0, 10.0, 100.0, 100.0, pp_image)

Методы/свойства, которые будут удалены, и их замена в Современном API

Класс 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) Будет полностью удален
save(fname, format, options, response, show_inline) Будет полностью удален
print() Будет полностью удален
print(printer_settings) Будет полностью удален
print(printer_name) Будет полностью удален
print(printer_settings, pres_name) Будет полностью удален

Класс 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: ITiffOotions)
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) Будет полностью удален
render_to_graphics(options, graphics, scale_x, scale_y) Будет полностью удален
render_to_graphics(options, graphics, rendering_size) Будет полностью удален

Класс 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)

Поддержка API для aspose.pydrawing.Graphics будет прекращена

Методы с aspose.pydrawing.Graphics объявлены устаревшими, и их поддержка будет удалена из публичного API.

Часть 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)