QImageIOPlugin Class
La classe QImageIOPlugin définit une interface pour l'écriture d'un plugin de format d'image. Plus d'informations...
| En-tête : | #include <QImageIOPlugin> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QImageIOPlugin fait partie de Plugin Classes.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
| flags | Capabilities |
| enum | Capability { CanRead, CanWrite, CanReadIncremental } |
Fonctions publiques
| 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 |
Description détaillée
QImageIOPlugin est une fabrique pour créer des objets QImageIOHandler, qui sont utilisés en interne par QImageReader et QImageWriter pour ajouter à Qt la prise en charge de différents formats d'image.
Pour écrire un plugin d'E/S d'image, il suffit de sous-classer cette classe de base, de réimplémenter les fonctions virtuelles pures capabilities() et create(), et d'exporter la classe avec la macro Q_PLUGIN_METADATA(). Voir Comment créer des plugins Qt pour plus de détails.
Un plugin de format d'image peut prendre en charge trois capacités : la lecture (CanRead), l'écriture (CanWrite) et la lecture incrémentale (CanReadIncremental). Réimplémentez capabilities() dans votre sous-classe pour exposer les capacités de votre format d'image.
create() doit créer une instance de votre sous-classe QImageIOHandler, avec le périphérique et le format fournis correctement définis, et renvoyer ce gestionnaire.
Le fichier de métadonnées json du plugin doit contenir des informations sur les formats d'image pris en charge par le plugin, ainsi que les types MIME correspondants (un pour chaque format). Pour un plugin jpeg, cela pourrait, par exemple, ressembler à ce qui suit :
{
"Keys": [ "jpg", "jpeg" ],
"MimeTypes": [ "image/jpeg", "image/jpeg" ]
}Différents plugins peuvent prendre en charge différentes fonctionnalités. Par exemple, vous pouvez avoir un plugin qui prend en charge la lecture du format GIF, et un autre qui prend en charge l'écriture. Qt XML sélectionnera le bon plugin pour le travail, en fonction de la valeur de retour de capabilities(). Si plusieurs greffons prennent en charge la même capacité, Qt en choisira un arbitrairement.
Voir aussi QImageIOHandler et Comment créer des plugins Qt.
Documentation des types de membres
enum QImageIOPlugin::Capability
flags QImageIOPlugin::Capabilities
Cette énumération décrit les capacités d'un plugin QImageIOPlugin.
| Constante | Valeur | Description du plugin |
|---|---|---|
QImageIOPlugin::CanRead | 0x1 | Le plugin peut lire des images. |
QImageIOPlugin::CanWrite | 0x2 | Le plugin peut écrire des images. |
QImageIOPlugin::CanReadIncremental | 0x4 | Le plugin peut lire des images de manière incrémentale. |
Le type Capabilities est un typedef pour QFlags<Capability>. Il stocke une combinaison OU de valeurs de capacités.
Documentation des fonctions membres
[explicit] QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)
Construit un plugin d'image avec l'adresse parent. Il est invoqué automatiquement par le code généré par moc qui exporte le plugin.
[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()
Détruit le plugin de format d'image.
Il n'est pas nécessaire de l'appeler explicitement. Qt détruit automatiquement un plugin lorsqu'il n'est plus utilisé.
[pure virtual] QImageIOPlugin::Capabilities QImageIOPlugin::capabilities(QIODevice *device, const QByteArray &format) const
Renvoie les capacités du plugin, sur la base des données contenues dans device et du format format. Si device est 0, il doit simplement indiquer si le format peut être lu ou écrit. Sinon, il doit essayer de déterminer si le format donné (ou tout autre format pris en charge par le greffon si format est vide) peut être lu ou écrit sur device. Il doit le faire sans modifier l'état de device (typiquement en utilisant QIODevice::peek()).
Par exemple, si QImageIOPlugin prend en charge le format BMP, que format est vide ou "bmp" et que les données de l'appareil commencent par les caractères "BM", cette fonction doit renvoyer CanRead. Si format est "bmp", device est 0 et que le gestionnaire prend en charge la lecture et l'écriture, cette fonction doit renvoyer CanRead | CanWrite.
Les noms de format sont toujours indiqués en minuscules.
[pure virtual] QImageIOHandler *QImageIOPlugin::create(QIODevice *device, const QByteArray &format = QByteArray()) const
Crée et renvoie une sous-classe de QImageIOHandler, avec device et format définis. L'adresse format doit provenir des valeurs listées dans l'entrée "Keys" des métadonnées du plugin, ou être vide. S'il est vide, les données contenues dans device doivent avoir été reconnues par la méthode capabilities() (avec un format également vide).
Les noms de format sont toujours indiqués en minuscules.
© 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.