Sur cette page

QImageIOPlugin Class

La classe QImageIOPlugin définit une interface permettant de créer un plugin de format d'image. En savoir plus...

En-tête : #include <QImageIOPlugin>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : QObject

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 permettant de créer des objets ` QImageIOHandler `, qui sont utilisés en interne par ` QImageReader ` et ` QImageWriter ` pour ajouter la prise en charge de différents formats d’image à Qt.

Pour écrire un plugin d'E/S d'image, il suffit de créer une sous-classe de cette classe de base, de réimplémenter les fonctions virtuelles pures capabilities() et create(), puis d'exporter la classe à l'aide de 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 fonctionnalités : la lecture (`CanRead`), l’écriture (`CanWrite`) et la lecture incrémentielle (`CanReadIncremental`). Réimplémentez ` capabilities()` dans votre sous-classe pour exposer les fonctionnalités de votre format d’image.

createLa méthode () doit créer une instance de votre sous-classe de QImageIOHandler, en configurant correctement le périphérique et le format fournis, puis 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, se présenter comme 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 sélectionnera le plugin approprié pour la tâche, en fonction de la valeur renvoyée par capabilities(). Si plusieurs plugins prennent en charge la même fonctionnalité, Qt en sélectionnera un de manière arbitraire.

Voir également QImageIOHandler et Comment créer des plugins Qt.

Documentation sur les types de membres

enum QImageIOPlugin::Capability
flags QImageIOPlugin::Capabilities

Cette énumération décrit les capacités d’un QImageIOPlugin.

ConstanteValeurDescription
QImageIOPlugin::CanRead0x1Le plugin peut lire des images.
QImageIOPlugin::CanWrite0x2Le plugin peut écrire des images.
QImageIOPlugin::CanReadIncremental0x4Le plugin peut lire des images de manière incrémentielle.

Le type Capabilities est un typedef pour QFlags<Capability>. Il stocke une combinaison OR de valeurs Capability.

Documentation des fonctions membres

[explicit] QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)

Crée un plugin d'image à partir de la configuration parent fournie. Celui-ci est appelé automatiquement par le code généré par moc qui exporte le plugin.

[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()

Supprime le plugin de format d'image.

Vous n'avez jamais besoin d'appeler cette fonction 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, en fonction 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 tenter de déterminer si le format donné (ou tout format pris en charge par le plugin si format est vide) peut être lu ou écrit depuis device. Il doit effectuer cette opération sans modifier l'état de device (généralement en utilisant QIODevice::peek()).

Par exemple, si l’ QImageIOPlugin prend en charge le format BMP, que format est soit vide, soit égal à "bmp", et que les données contenues dans le périphérique commencent par les caractères "BM", cette fonction doit renvoyer CanRead. Si format est égal à "bmp", que device est égal à 0 et que le gestionnaire prend en charge à la fois la lecture et l’écriture, cette fonction doit renvoyer CanRead | CanWrite.

Les noms de format sont toujours écrits en minuscules.

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

Crée et renvoie une sous-classe de ` QImageIOHandler `, avec les champs ` device ` et ` format ` définis. Le champ ` format ` doit provenir des valeurs répertorié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 écrits 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.