QImageIOPlugin Class
Die Klasse „QImageIOPlugin“ definiert eine Schnittstelle zum Erstellen eines Plugins für ein Bildformat. Mehr...
| Header: | #include <QImageIOPlugin> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Erbt von: | QObject |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QImageIOPlugin ist Teil der Plugin-Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| flags | Capabilities |
| enum | Capability { CanRead, CanWrite, CanReadIncremental } |
Öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
QImageIOPlugin ist eine Factory zum Erstellen von „ QImageIOHandler “-Objekten, die intern von „ QImageReader “ und „ QImageWriter “ verwendet werden, um Qt die Unterstützung für verschiedene Bildformate hinzuzufügen.
Das Erstellen eines Bild-I/O-Plugins erfolgt durch Unterklassenbildung dieser Basisklasse, die Neuimplementierung der rein virtuellen Funktionen ` capabilities()` und ` create()` sowie den Export der Klasse mit dem Makro ` Q_PLUGIN_METADATA()`. Weitere Informationen finden Sie unter „So erstellen Sie Qt-Plugins “.
Ein Bildformat-Plugin kann drei Funktionen unterstützen: Lesen (`CanRead`), Schreiben (`CanWrite`) und inkrementelles Lesen (`CanReadIncremental`). Implementieren Sie ` capabilities()` in Ihrer Unterklasse neu, um die Funktionen Ihres Bildformats bereitzustellen.
create() sollte eine Instanz Ihrer QImageIOHandler -Unterklasse erstellen, wobei das angegebene Gerät und das Format korrekt eingestellt sind, und diesen Handler zurückgeben.
Die JSON-Metadatendatei für das Plugin muss Informationen über die vom Plugin unterstützten Bildformate sowie die entsprechenden MIME-Typen (einen für jedes Format) enthalten. Für ein JPEG-Plugin könnte dies beispielsweise wie folgt aussehen:
{
"Keys": [ "jpg", "jpeg" ],
"MimeTypes": [ "image/jpeg", "image/jpeg" ]
}Verschiedene Plugins können unterschiedliche Funktionen unterstützen. Beispielsweise könntest du ein Plugin haben, das das Lesen des GIF-Formats unterstützt, und ein anderes, das das Schreiben unterstützt. Qt wählt je nach Rückgabewert von ` capabilities()` das richtige Plugin für die jeweilige Aufgabe aus. Wenn mehrere Plugins dieselbe Funktion unterstützen, wählt Qt eines davon willkürlich aus.
Siehe auch „ QImageIOHandler “ und „So erstellen Sie Qt-Plugins“.
Dokumentation zu Mitgliedstypen
enum QImageIOPlugin::Capability
flags QImageIOPlugin::Capabilities
Diese Enumeration beschreibt die Funktionen eines „ QImageIOPlugin “.
| Konstante | Wert | Beschreibung |
|---|---|---|
QImageIOPlugin::CanRead | 0x1 | Das Plugin kann Bilder lesen. |
QImageIOPlugin::CanWrite | 0x2 | Das Plugin kann Bilder schreiben. |
QImageIOPlugin::CanReadIncremental | 0x4 | Das Plugin kann Bilder inkrementell lesen. |
Der Typ „Capabilities“ ist eine Typdefinition für „QFlags<Capability>“. Er speichert eine ODER-Kombination von „Capability“-Werten.
Dokumentation der Mitgliedsfunktionen
[explicit] QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)
Erstellt ein Bild-Plugin mit der angegebenen Datei „ parent “. Dies wird automatisch durch den von moc generierten Code aufgerufen, der das Plugin exportiert.
[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()
Löscht das Bildformat-Plugin.
Sie müssen diese Funktion niemals explizit aufrufen. Qt löscht ein Plugin automatisch, sobald es nicht mehr verwendet wird.
[pure virtual] QImageIOPlugin::Capabilities QImageIOPlugin::capabilities(QIODevice *device, const QByteArray &format) const
Gibt die Funktionen des Plugins zurück, basierend auf den Daten unter device und dem Format format. Wenn device den Wert 0 hat, sollte lediglich gemeldet werden, ob das Format gelesen oder geschrieben werden kann. Andernfalls sollte versucht werden, festzustellen, ob das angegebene Format (oder ein beliebiges vom Plugin unterstütztes Format, falls format leer ist) aus device gelesen oder in dieses geschrieben werden kann. Dies sollte erfolgen, ohne den Status von device zu ändern (in der Regel durch Verwendung von QIODevice::peek()).
Wenn beispielsweise das QImageIOPlugin das BMP-Format unterstützt, format entweder leer ist oder "bmp" lautet und die Daten im Gerät mit den Zeichen "BM" beginnen, sollte diese Funktion CanRead zurückgeben. Wenn format gleich "bmp" ist, device gleich 0 lautet und der Handler sowohl das Lesen als auch das Schreiben unterstützt, sollte diese Funktion CanRead | CanWrite zurückgeben.
Formatnamen werden immer in Kleinbuchstaben angegeben.
[pure virtual] QImageIOHandler *QImageIOPlugin::create(QIODevice *device, const QByteArray &format = QByteArray()) const
Erstellt und gibt eine Unterklasse von ` QImageIOHandler ` zurück, wobei ` device ` und ` format ` gesetzt sind. Der Wert für ` format ` muss aus den Werten stammen, die im Eintrag ` "Keys" ` in den Plugin-Metadaten aufgeführt sind, oder leer sein. Ist er leer, müssen die Daten in ` device ` von der Methode ` capabilities()` erkannt worden sein (mit einem ebenfalls leeren Format).
Formatnamen werden immer in Kleinbuchstaben angegeben.
© 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.