モダン API を使用した画像処理の強化
導入
Aspose.Slides for Python のパブリック API は現在、以下の aspose.pydrawing 型に依存しています。
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
バージョン 24.4 以降、このパブリック API は Aspose.Slides for Python のパブリック API における 変更 により 非推奨 となりました。
パブリック API から aspose.pydrawing を排除するため、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) | No Modern API replacement |
| save(fname, format, options, response, show_inline) | No Modern API replacement |
| print() | No Modern API replacement |
| print(printer_settings) | No Modern API replacement |
| print(printer_name) | No Modern API replacement |
| print(printer_settings, pres_name) | No Modern API replacement |
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) | No Modern API replacement |
| render_to_graphics(options, graphics, scale_x, scale_y) | No Modern API replacement |
| render_to_graphics(options, graphics, rendering_size) | No Modern API replacement |
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)
FAQ
なぜ 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 への切り替えは性能を低下させません。新しいメソッドはオプションやサイズ指定で画像を生成する同等の機能を提供し、レンダリングオプションのサポートも維持しています。具体的な利得や低下はシナリオに依存しますが、機能的には置き換えは等価です。