このページでは

Qt Image Formatsにおけるベクター画像形式

Qtは、グラフィックデータを読み込むための多くの標準ファイル形式をサポートしており、アプリケーションが他のツールで作成されたコンテンツを取り込むことを可能にしています。

この記事では、ベクター画像に焦点を当て、Qt アプリケーションで使用するためのベクターグラフィックスコンテンツを作成する際に考慮すべき点について解説します。

注: Qt による 2D グラフィックスのサポートに関する一般的な情報については 、ドキュメントの「Qt における 2D グラフィックス」を参照してください。

ファイル形式:SVG

SVG ファイルは、Qt において 2 つの異なる方法で読み込むことができます Qt Quick:Imageコンポーネントを使用したソフトウェアラスタライズされた画像として、あるいはVectorImage によるハードウェアアクセラレーションレンダリングを使用する方法(svgtoqml を使用して事前にファイルを変換することを含む)です。

さらに、QSvgRenderer を使用すると、ソフトウェアラスタライザに一般的にアクセスできます。QSvgWidget およびQGraphicsSvgItem は、SVG コンテンツをアプリケーションに統合するための便利な API を提供します。 Qt Widgets アプリケーションに統合するための便利なAPIを提供します。

基本的に、Qt SVG は SVG 1.2 Tiny プロファイルの静的機能をサポートしています。このプロファイルでサポートされている機能の詳細なリストは、SVG 1.2 Tiny 仕様書で確認できます。

さらに、特定の拡張機能もサポートされています。

SVG のインタラクティブ機能はサポートされていませんが、インタラクションはどちらでも簡単に実装できます。 Qt Quick または Qt Widgetsのいずれかを使用して、簡単に実装できます。また、SMIL 形式または CSS キーフレームを使用した、特定のアニメーションタイプもサポートされています。

以下に、サポートされている機能とサポートされていない機能の概要を示す大まかなリストを記載します。サポートされていない機能は、可能な限り無視されるため、サポートされていない機能に依存する SVG ファイルも表示されますが、欠落やエラーが生じる可能性があります。

変形サポート対象
位置👍
スケール👍
ローテーション👍
傾き👍
図形対応
楕円/円👍
長方形👍
ポリラインおよびポリゴン👍
ベジェ曲線👍
マーカー👍
シンボル👍
形状のレンダリング可能対応
塗りつぶし👍
ストローク👍
線形グラデーション👍
放射状グラデーション👍
円錐グラデーション👍
パターン👍
グラデーションストローク👍
ストロークキャップ👍
ストロークの接続👍
線のスタイル(破線など)👍
装飾用ストローク👍
テキスト対応
スパン👍
グリフ👍
後処理エフェクト対応
マスク👍
feColorMatrix👍
feFlood👍
feOffset👍
feGaussianBlur👍
feMerge👍
残りのフィルター🚫
CSSアニメーション対応済み
色👍
グラデーション👍
不透明度👍
変形👍
パスオフセット👍
モーションパス👍
イージングカーブ👍
その他のプロパティ🚫
SMILアニメーション対応
animateTransform👍
animateColor👍
animate🚫
animateMotion🚫
set🚫
その他対応
ラスター画像👍
要素を使用👍
要素を切り替える👍
クリップパス🚫
マルチメディア🚫
スクリプト🚫
リンク🚫

ファイル形式: Lottie

SVGと同様に、QtではLottie形式のファイルを読み込む方法がいくつかあります。

LottieAnimation 型は、QSvgRenderer がSVGに対して行うのと同様に、画像を読み込み、ソフトウェアラスタライザを使用して表示します。

さらに、VectorImage とlottietoqmlツールを使用することで、ハードウェアアクセラレーションによるレンダリングが可能です。

VectorImage で Lottie ファイルを使用するには、アプリケーションに同梱されているvectorimageformats プラグインを Qt Lottie Animation に同梱されているVectorImage プラグインを、アプリケーションと一緒にデプロイする必要があります。また、 のassumeTrustedSource プロパティをtrue に設定する必要があります。アニメーション再生の詳細な制御については、LottieVectorImageController を参照してください。

lottietoqmlツールを使用すると、Lottie ソースファイルを QML に事前変換できます。その例は、lottietoqml のサンプルで確認できます。

以下は、LottieAnimation 型(ソフトウェアラスタライザ)およびVectorImage (lottietoqmlを使用したファイルの事前変換も含む)がサポートする主要な機能の一覧です。

変換サポート対象
位置👍
スケール👍
ローテーション👍
傾き👍
不透明度👍
アンカーポイント👍
自動方向調整👍
図形対応
楕円/円👍
長方形👍
角丸長方形👍
ポリスター👍
ベジェ曲線👍
トリムされたパス👍
形状のレンダリング対応済み
塗りつぶし👍
ストローク👍
線形グラデーション👍
放射状グラデーション👍
グラデーションストローク👍
ストロークキャップ👍
ストロークの接続👍
線のスタイル(破線など)👍
テキスト対応
塗りつぶし👍
ストローク🚫
フォント👍
グリフ👍
後処理エフェクト対応
アルファマット👍
輝度マット👍
レイヤーエフェクト🚫
パスの結合対応
追加👍
引き算🚫
共通部分🚫
マスク対応
マスクパス👍
結合👍
その他の演算🚫
アニメーション対応
色👍
グラデーション👍
不透明度👍
変形👍
パスの補間👍
トリム👍
マーカー🚫
パスの結合🚫
残りのプロパティ🚫
イージングカーブ👍
タイムストレッチ👍
タイムリマップ👍
その他対応
ラスター画像👍
プリコンプレイヤー👍
式🚫

ファイル形式:ベクター画像形式としてのフォントファイル

SVGなどの従来のベクターグラフィックス形式に加え、ベクターグラフィックスアセットがグリフとして保存されたカスタムフォントファイルを利用することも可能です。

これには、シンプルなイラストをテキストラベル内にインラインで配置でき、テキストと同様の書式設定が可能になるという利点があります。これにより、画像とテキストの位置合わせが容易になります。

この目的でフォントファイルを使用することは、大規模なアイコンライブラリを配布する便利な方法となるほか、実行時に置き換え可能なテーマを提供することも可能です。

ただし、Qt におけるフォントの使用はテキストの生成に最適化されているため、VectorImage のような専用のベクター画像コンポーネントの代替としてアイコンフォントを使用する際には、いくつかの点に留意する必要があります。

まず第一に、カラーフォントは常に指定されたピクセルサイズで事前にラスタライズされます。つまり、このようなテキスト項目に変形を適用すると、スケーリングによるアーティファクトが発生します。例えば、ズームが必要なイラストの場合は、VectorImage を使用する方が望ましいです。

また、アニメーション付きのベクター画像についても、専用のコンポーネントを使用する方が望ましいです。可変フォント形式の拡張機能によりモーフィングアニメーションが可能ではありますが、Qtのフォントシステムはこのような用途向けに最適化されていません。そのため、フォントの可変軸をアニメーションさせることは、他のベクター画像形式を使用する場合に比べて効率が悪くなります。

したがって、アニメーションや多色ベクター画像については、通常、SVGなどの形式を使用することが推奨されます。単色で静的な画像については、フォントを使用することも、一定の利点がある選択肢の一つです。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.