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型を提供しません。
© 2025 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.