QImageIOPlugin Class
QImageIOPlugin クラスは、画像フォーマットプラグインを記述するためのインターフェイスを定義します。詳細...
Header: | #include <QImageIOPlugin> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Inherits: | QObject |
- 継承されたメンバを含む、すべてのメンバの一覧
- QImageIOPlugin はプラグインクラスに属しています。
注意:このクラスの関数はすべてリエントラントです。
パブリック型
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 に異なる画像フォーマットのサポートを追加します。
画像入出力プラグインを作成するには、この基底クラスをサブクラス化し、純粋仮想関数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
この enum は、QImageIOPlugin の能力を記述します。
定数 | 値 | 説明 |
---|---|---|
QImageIOPlugin::CanRead | 0x1 | プラグインは画像を読み込むことができます。 |
QImageIOPlugin::CanWrite | 0x2 | プラグインは画像を書き込むことができます。 |
QImageIOPlugin::CanReadIncremental | 0x4 | プラグインは画像をインクリメンタルに読み込むことができる。 |
Capabilities型はQFlags<Capability>のtypedefである。Capabilitiesの値の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
device とformat が設定されたQImageIOHandler サブクラスを作成し、返します。format は、プラグイン・メタデータの"Keys"
エントリにリストされている値か、空でなければなりません。空の場合は、device のデータがcapabilities() メソッドで認識されている必要があります(同様に空のフォーマット)。
フォーマット名は常に小文字で指定します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。