现代 API

介绍

目前,Aspose.Slides for Python via .NET 库的公共 API 依赖于 aspose.pydrawing 中的以下类:

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

截至版本 24.4,由于 更改 在 Aspose.Slides for .NET 公共 API 中,这个公共 API 被声明为不推荐使用。

为了摆脱公共 API 中对 aspose.pydrawing 的依赖,我们添加了所谓的“现代 API”。使用 aspose.pydrawing.Imageaspose.pydrawing.Bitmap 的方法被声明为不推荐使用,并将被现代 API 中相应的方法替代。使用 aspose.pydrawing.Graphics 的方法被声明为不推荐使用,并且它们的支持将从公共 API 中移除。

在版本 24.8 时,将移除依赖于 aspose.pydrawing 的不推荐使用的公共 API。

现代 API

公共 API 添加了以下类和枚举:

使用新 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 的接口重复了 ImageBitmap 类的单独签名。通常,您只需将对旧方法的调用(使用 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 中的替代

演示文稿类

方法签名 替代方法签名
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) 将被完全删除

幻灯片类

方法签名 替代方法签名
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) 将被完全删除

形状类

方法签名 替代方法签名
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)

输出类

方法签名 替代方法签名
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)