QImageIOPlugin Class
QImageIOPlugin クラスは、画像フォーマットプラグインを作成するためのインターフェースを定義しています。詳細...
| ヘッダー: | #include <QImageIOPlugin> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QObject |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QImageIOPlugin はPlugin Classes の一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| flags | Capabilities |
| enum | Capability { CanRead, CanWrite, CanReadIncremental } |
パブリック関数
| QImageIOPlugin(QObject *parent = nullptr) | |
| virtual | ~QImageIOPlugin() |
| virtual QImageIOPlugin::Capabilities | capabilities(QIODevice *device, const QByteArray &format) const = 0 |
| virtual QImageIOHandler * | create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0 |
詳細な説明
QImageIOPlugin は、QImageIOHandler オブジェクトを作成するためのファクトリです。 オブジェクトは、QImageReader およびQImageWriter によって内部的に使用され、Qt にさまざまな画像フォーマットのサポートを追加します。
画像 I/O プラグインの作成は、この基底クラスをサブクラス化し、純粋仮想関数capabilities() およびcreate() を再実装し、Q_PLUGIN_METADATA() マクロを使用してクラスをエクスポートすることで実現されます。詳細については、「Qt プラグインの作成方法」を参照してください。
画像フォーマットプラグインは、読み込み(CanRead )、書き込み(CanWrite )、および増分読み込み(CanReadIncremental )の3つの機能をサポートできます。サブクラスでcapabilities()を再実装し、画像フォーマットの機能を提供してください。
create() は、指定されたデバイスとフォーマットが適切に設定されたQImageIOHandler サブクラスのインスタンスを作成し、このハンドラを返す必要があります。
プラグイン用の JSON メタデータファイルには、プラグインがサポートする画像フォーマットに関する情報と、それに対応する MIME タイプ(フォーマットごとに 1 つ)を含める必要があります。たとえば、JPEG プラグインの場合、次のような内容になります:
{
"Keys": [ "jpg", "jpeg" ],
"MimeTypes": [ "image/jpeg", "image/jpeg" ]
}プラグインごとにサポートする機能が異なります。たとえば、GIF形式の読み取りをサポートするプラグインと、書き込みをサポートするプラグインが別々に存在する場合があります。Qtは、capabilities()の戻り値に基づいて、その処理に適したプラグインを選択します。同じ機能をサポートするプラグインが複数ある場合、Qtは任意に1つを選択します。
「 QImageIOHandler 」 および「Qtプラグインの作成方法」も参照してください 。
メンバ型のドキュメント
enum QImageIOPlugin::Capability
flags QImageIOPlugin::Capabilities
この列挙型は、QImageIOPlugin の機能を記述するものです。
| 定数 | 定数値 | 説明 |
|---|---|---|
QImageIOPlugin::CanRead | 0x1 | このプラグインは画像を読み込むことができます。 |
QImageIOPlugin::CanWrite | 0x2 | このプラグインは、画像を書き込むことができます。 |
QImageIOPlugin::CanReadIncremental | 0x4 | このプラグインは、画像をインクリメンタルに読み込むことができます。 |
Capabilities 型は、QFlags<Capability> の typedef です。Capability 値の OR 組み合わせを格納します。
メンバ関数のドキュメント
[explicit] QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)
指定されたparent を使用して、イメージプラグインを構築します。これは、プラグインをエクスポートするmocによって生成されたコードによって自動的に呼び出されます。
[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()
画像フォーマットプラグインを破棄します。
これを明示的に呼び出す必要は一切ありません。Qtは、プラグインが使用されなくなった時点で自動的に破棄します。
[pure virtual] QImageIOPlugin::Capabilities QImageIOPlugin::capabilities(QIODevice *device, const QByteArray &format) const
device 内のデータと、format のフォーマットに基づいて、プラグインの機能を返します。device が0 の場合、そのフォーマットを読み込めるか書き込めるかを単に報告すればよいです。 それ以外の場合は、指定されたフォーマット(format が空の場合、プラグインがサポートする任意のフォーマット)がdevice から読み込めるか、または書き込めるかを判定しようとする。この処理は、device の状態を変更せずに実行する必要がある(通常はQIODevice::peek()を使用する)。
例えば、QImageIOPlugin がBMP形式をサポートしており、format が空か"bmp" であり、デバイス内のデータが"BM" で始まる場合、この関数はCanRead を返す必要があります。format が"bmp" であり、device が0 で、かつハンドラが読み書きの両方をサポートしている場合、この関数はCanRead |CanWrite を返す必要があります。
フォーマット名は常に小文字で指定されます。
[pure virtual] QImageIOHandler *QImageIOPlugin::create(QIODevice *device, const QByteArray &format = QByteArray()) const
`QImageIOHandler ` のサブクラスを作成し、`device ` および `format ` が設定された状態で返します。`format ` は、プラグインのメタデータ内の `"Keys" ` エントリにリストされている値のいずれかであるか、空でなければなりません。空の場合、`device ` 内のデータは、`capabilities()` メソッドによって認識されている必要があります(このメソッドのフォーマットも同様に空である必要があります)。
フォーマット名は常に小文字で指定されます。
© 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.