Delphi / C++Builder / RAD Studio 12 Athensの新機能のひとつに「Skiaサポート」があります。Skiaは、Googleが提供するオープンソースの2Dグラフィックライブラリで、Google Chrome、 ChromeOS、Android、Flutterをはじめ、多くの製品のグラフィックスエンジンとしても使用されています。ハイパフォーマンスで高品質のレンダリング機能を提供し、すべてのプラットフォームで高度なグラフィック操作をサポートしています。
Table of Contents
Delphi / C++Builder 12のSkiaサポート
Delphiでは、「Skia4Delphi」と呼ばれるライブラリによりSkiaのサポートを実現しています。12 Athensでは、これを製品に取り込み、さらに使いやすく機能拡張を施しています。
Delphi / C++BuilderでSkiaを使うには、いくつかの方法があります。
- 単一のユニット(Skia.pasまたは Skia.hpp)経由で、Skiaライブラリに直接アクセスできるSkia APIを使用
- FireMonkey / VCLの双方で用意されているSkiaコンポーネントを使用
- アプリとスタイルのレンダリングに使用(FireMonkey)
- イメージコントロールのコーデックで使用
Skiaコンポーネント
新たに追加されたSkiaコンポーネントは、VCLとFireMonkeyの双方に用意されています。
- TSkLabel:フォントウェイト、フォントの傾き、テキストで複数のスタイル、BiDi(右横書き)、縦書きのアラインメント調整など
- TSkAnimatedImage:Lottieファイル、Telegram Sticker、アニメーションGIF、アニメーションWebPのサポート
- TSkSVG:SVGを簡単に表示
- TSkPaintBox と TSkAnimatedPaintBox:OnDrawイベントでSkia APIを直接使って画面上に描画
ここでは、Skiaの表現力豊かなグラフィック機能を簡単に利用できるこれらのコンポーネントの使い方を簡単に解説します。
TSkLabelの使い方
TSkLabelは、Skiaの文字列描画機能をコントロールとして利用できるようにしたものです。TSkLabelには、複数のワード(TWordsItemで表現)を含めることができ、それぞれのワードごとに、フォントの種類、色、下線などのデコレーションなどを設定できます。また、ワードごとにOnClickなどのイベントを設定することもできます。TSkLabelに含まれるワードは、Wordsプロパティで保持されます。
TSkLabelの使い方の詳細は、こちらのビデオをご覧ください。
TSkAnimatedImageの使い方
TSkAnimatedImageは、アニメーションGIFなどのアニメーション画像を表示するコントロールです。TSkAnimatedImageでは、以下の種類のアニメーションファイルを表示できます。
- Animated GIF (*. )
- Animated WebP (*.webp)
- Lottie (*.json)
- Telegram Sticker (*.tgs)
使い方は簡単で、Sourceプロパティで画像を指定し、Animationプロパティでアニメーション動作の詳細を設定するだけです。
TSkSVGの使い方
TSkSVGは、SVGを表示するコントロールです。使い方は簡単で、SvgプロパテのSourceに、SVGを指定するだけです。SVGファイルを指定する以外に、SVGエディタ内でSVGソースをペーストして利用することもできます。
TSkAnimatedImageとTSkSVGの使い方の詳細は、こちらのビデオをご覧ください。