モダン API

はじめに

現在、Aspose.Slides for C++ライブラリは、公開APIにおいて以下のSystem::Drawingクラスに依存しています:

バージョン24.4から、この公開APIは非推奨とされています。

公開APIにおけるSystem::Drawingへの依存を排除するために、いわゆる「モダンAPI」を追加しました。System::Drawing::ImageおよびSystem::Drawing::Bitmapを使用したメソッドは非推奨とし、モダンAPIの対応するメソッドに置き換えられます。System::Graphicsを使用したメソッドも非推奨とされ、そのサポートは公開APIから削除されます。

System::Drawingに依存する非推奨の公開APIの削除は、リリース24.8で行われる予定です。

モダンAPI

以下のクラスと列挙型が公開APIに追加されました:

  • Aspose::Slides::IImage - ラスタまたはベクター画像を表します。
  • Aspose::Slides::ImageFormat - 画像のファイル形式を表します。
  • Aspose::Slides::Images - IImageインターフェースをインスタンス化し、操作するためのメソッド。

新しいAPIを使用する典型的なシナリオは以下のようになります:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();
        
// ディスク上のファイルからIImageの一時インスタンスを生成します。  
System::SharedPtr<IImage> image = Images::FromFile(u"image.png");
            
// IImageのインスタンスをプレゼンテーションの画像に追加することでPowerPoint画像を作成します。
System::SharedPtr<IPPImage> ppImage = pres->get_Images()->AddImage(image);
        
// スライド#1に画像シェイプを追加します。
pres->get_Slide(0)->get_Shapes()->AddPictureFrame(Aspose::Slides::ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f, ppImage);
        
// スライド#1を表すIImageのインスタンスを取得します。
auto slideImage = pres->get_Slide(0)->GetImage(System::Drawing::Size(1920, 1080));

// ディスクに画像を保存します。
slideImage->Save(u"slide1.jpeg", Aspose::Slides::ImageFormat::Jpeg);

古いコードをモダンAPIに置き換える

移行を容易にするために、新しいIImageのインターフェースはImageとBitmapクラスの個別のシグネチャを繰り返しています。一般的には、System::Drawingを使用した古いメソッドの呼び出しを新しいものに置き換えるだけで済みます。

スライドサムネイルの取得

非推奨APIを使用したコード:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

pres->get_Slide(0)->GetThumbnail()->Save(u"slide1.png");

モダンAPI:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

pres->get_Slide(0)->GetImage()->Save(u"slide1.png");

シェイプサムネイルの取得

非推奨APIを使用したコード:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

pres->get_Slide(0)->get_Shape(0)->GetThumbnail()->Save(u"shape.png");

モダンAPI:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

pres->get_Slide(0)->get_Shape(0)->GetImage()->Save(u"shape.png");

プレゼンテーションサムネイルの取得

非推奨APIを使用したコード:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

auto bitmaps = pres->GetThumbnails(System::MakeObject<RenderingOptions>(), System::Drawing::Size(1980, 1028));

for (int32_t index = 0; index < bitmaps->get_Length(); index++)
{
    System::SharedPtr<System::Drawing::Bitmap> thumbnail = bitmaps[index];
    thumbnail->Save(System::String::Format(u"slide_{0}.png", index), System::Drawing::Imaging::ImageFormat::get_Png());
}

モダンAPI:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

auto images = pres->GetImages(System::MakeObject<RenderingOptions>(), System::Drawing::Size(1980, 1028));

for (int32_t index = 0; index < images->get_Length(); index++)
{
    System::SharedPtr<IImage> thumbnail = images[index];
    thumbnail->Save(System::String::Format(u"slide_{0}.png", index), Aspose::Slides::ImageFormat::Png);
}

プレゼンテーションへの画像の追加

非推奨APIを使用したコード:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();

System::SharedPtr<System::Drawing::Image> image = System::Drawing::Image::FromFile(u"image.png");

System::SharedPtr<IPPImage> ppImage = pres->get_Images()->AddImage(image);

pres->get_Slide(0)->get_Shapes()->AddPictureFrame(Aspose::Slides::ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f, ppImage);

モダンAPI:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();

System::SharedPtr<Aspose::Slides::IImage> image = Aspose::Slides::Images::FromFile(u"image.png");

System::SharedPtr<IPPImage> ppImage = pres->get_Images()->AddImage(image);

pres->get_Slide(0)->get_Shapes()->AddPictureFrame(Aspose::Slides::ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f, ppImage);

削除されるメソッド/プロパティとモダンAPIでの置き換え

Presentationクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options) GetImages(System::SharedPtr<Export::IRenderingOptions> options)
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides) GetImages(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides)
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options, float scaleX, float scaleY) GetImages(System::SharedPtr<Export::IRenderingOptions> options, float scaleX, float scaleY)
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides, float scaleX, float scaleY) GetImages(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides, float scaleX, float scaleY)
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options, System::Drawing::Size imageSize) GetImages(System::SharedPtr<Export::IRenderingOptions> options, System::Drawing::Size imageSize)
GetThumbnails(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides, System::Drawing::Size imageSize) GetImages(System::SharedPtr<Export::IRenderingOptions> options, System::ArrayPtr<int32_t> slides, System::Drawing::Size imageSize)
Save(System::String fname, System::ArrayPtr<int32_t> slides, Export::SaveFormat format) 完全に削除される予定
Save(System::String fname, System::ArrayPtr<int32_t> slides, Export::SaveFormat format, System::SharedPtr<Export::ISaveOptions> options) 完全に削除される予定

Slideクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
GetThumbnail() GetImage()
GetThumbnail(float scaleX, float scaleY) GetImage(float scaleX, float scaleY)
GetThumbnail(System::Drawing::Size imageSize) GetImage(System::Drawing::Size imageSize)
GetThumbnail(System::SharedPtr<Export::ITiffOptions> options) GetImage(System::SharedPtr<Export::IRenderingOptions> options)
GetThumbnail(System::SharedPtr<Export::IRenderingOptions> options) GetImage(System::SharedPtr<Export::IRenderingOptions> options)
GetThumbnail(System::SharedPtr<Export::IRenderingOptions> options, float scaleX, float scaleY) GetImage(System::SharedPtr<Export::IRenderingOptions> options, float scaleX, float scaleY)
GetThumbnail(System::SharedPtr<Export::IRenderingOptions> options, System::Drawing::Size imageSize) GetImage(System::SharedPtr<Export::IRenderingOptions> options, System::Drawing::Size imageSize)
RenderToGraphics(System::SharedPtr<Export::IRenderingOptions> options, System::SharedPtr<System::Drawing::Graphics> graphics) 完全に削除される予定
RenderToGraphics(System::SharedPtr<Export::IRenderingOptions> options, System::SharedPtr<System::Drawing::Graphics> graphics, float scaleX, float scaleY) 完全に削除される予定
RenderToGraphics(System::SharedPtr<Export::IRenderingOptions> options, System::SharedPtr<System::Drawing::Graphics> graphics, System::Drawing::Size renderingSize) 完全に削除される予定

Shapeクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
GetThumbnail() GetImage()
GetThumbnail(ShapeThumbnailBounds bounds, float scaleX, float scaleY) GetImage(ShapeThumbnailBounds bounds, float scaleX, float scaleY)

ImageCollectionクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
AddImage(System::SharedPtr<System::Drawing::Image> image) AddImage(System::SharedPtr<IImage> image)

PPImageクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
ReplaceImage(System::SharedPtr<System::Drawing::Image> newImage) ReplaceImage(System::SharedPtr<Aspose::Slides::IImage> newImage)
get_SystemImage() get_Image()

PatternFormatクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
GetTileImage(System::Drawing::Color background, System::Drawing::Color foreground) GetTile(System::Drawing::Color background, System::Drawing::Color foreground)
GetTileImage(System::Drawing::Color styleColor) GetTile(System::Drawing::Color styleColor)

IPatternFormatEffectiveDataクラス

メソッドシグネチャ 置き換えメソッドシグネチャ
GetTileImage(System::Drawing::Color background, System::Drawing::Color foreground) GetTileImage(System::Drawing::Color background, System::Drawing::Color foreground)

System::Drawing::Graphicsに対するAPIサポートは中止されます

System::Drawing::Graphicsを使用するメソッドは非推奨とされ、そのサポートは公開APIから削除されます。

それを使用するAPIの一部は削除される予定です: