QImageIOPlugin Class

QImageIOPlugin クラスは、画像フォーマットプラグインを記述するためのインターフェイスを定義します。詳細...

ヘッダー #include <QImageIOPlugin>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承: QObject

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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 オブジェクトを生成するためのファクトリです。このオブジェクトはQImageReaderQImageWriter によって内部的に使用され、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::CanRead0x1プラグインは画像を読み込むことができます。
QImageIOPlugin::CanWrite0x2プラグインは画像を書き込むことができます。
QImageIOPlugin::CanReadIncremental0x4プラグインは画像をインクリメンタルに読み込むことができる。

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 に基づいて、プラグインの能力を返す。device0 の場合、その書式を読み書きできるかどうかを報告する。そうでない場合は、指定されたフォーマット(またはformat が空の場合はプラグインがサポートする任意のフォーマット)がdevice から読み込めるか、または に書き込めるかを判断しなければならない。これはdevice の状態を変更することなく(通常はQIODevice::peek() を使用して)行う。

たとえば、QImageIOPlugin が BMP フォーマットをサポートし、format が空または"bmp" で、デバイス内のデータが"BM" の文字で始まる場合、この関数はCanRead を返す必要があります。format"bmp" で、device0 で、ハンドラが読み込みと書き込みの両方をサポートしている場合、この関数はCanRead |CanWrite を返すべきです。

フォーマット名は常に小文字で与えられる。

[pure virtual] QImageIOHandler *QImageIOPlugin::create(QIODevice *device, const QByteArray &format = QByteArray()) const

deviceformat を設定したQImageIOHandler サブクラスを作成し、返します。format は、プラグインメタデータの"Keys" エントリにリストされている値か、空でなければなりません。空の場合は、device のデータがcapabilities() メソッドで認識されている必要があります(同様に空のフォーマット)。

フォーマット名は常に小文字で指定します。

© 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.