Qt Quick Shared Image Provider
概要
このモジュールは、複数の Qt Quick アプリケーションが同じローカルイメージファイルを使用する場合に、メモリを節約する機能を提供します。これは、デコードされたQImage データを共有システムメモリに配置し、すべてのプロセスからアクセスできるようにすることで実現されます (QSharedMemory を参照)。
このモジュールは CPU メモリのみを共有します。GPU メモリやテクスチャの共有はできません。
使用方法
このモジュールを使用するには、次のようにインポートします:
import Qt.labs.sharedimage
共有機能は、QQuickImageProvider を通して提供されます。 画像の URL ソースには「image:」スキームを使用し、その後にshared という識別子を続け、その後に画像ファイルのパスを続けます。例えば
Image { source: "image://shared/usr/share/wallpapers/mybackground.jpg" }
これは/usr/share/wallpapers/mybackground.jpgというファイルを探します。これを実行する最初のプロセスは、通常のQtイメージローディングを使用して画像ファイルを読み込みます。デコードされた画像データは、ファイルパスをキーとして共有メモリに置かれます。同じ画像をリクエストした後のプロセスは、そのデータがすでに共有メモリで利用可能であることに気づきます。そして、画像ファイルを再度ロードする代わりに、そのデータを使用します。
共有画像データは、最後のプロセスが共有画像への最後の参照を削除するまで利用可能な状態に保たれ、その時点で自動的に解放されます。
システムメモリ共有が利用できない場合、共有画像プロバイダは通常の非共有画像読み込みに戻ります。
ファイル・パスは絶対パスでなければなりません。相対パスを使用するには、Qt.resolvedUrl() を使用して絶対パスにし、URL スキームを置き換えます。例えば
... property string imagePrefix: Qt.resolvedUrl("../myimages/").replace("file://", "image://shared/") Image { source: imagePrefix + "myimage.png" }
共有画像モジュールは、直接使用可能なQML型を提供しません。
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。