En esta página

QImageIOPlugin Class

La clase QImageIOPlugin define una interfaz para escribir un plugin de formato de imagen. Más...

Cabecera: #include <QImageIOPlugin>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Hereda: QObject

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

flags Capabilities
enum Capability { CanRead, CanWrite, CanReadIncremental }

Funciones Públicas

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

Descripción Detallada

QImageIOPlugin es una fábrica para crear objetos QImageIOHandler, que son utilizados internamente por QImageReader y QImageWriter para añadir soporte para diferentes formatos de imagen a Qt.

Escribir un plugin de E/S de imagen se consigue subclasificando esta clase base, reimplementando las funciones virtuales puras capabilities() y create(), y exportando la clase con la macro Q_PLUGIN_METADATA(). Ver Cómo crear plugins Qt para más detalles.

Un plugin de formato de imagen puede soportar tres capacidades: lectura (CanRead), escritura (CanWrite) y lectura incremental (CanReadIncremental). Reimplemente capabilities() en su subclase para exponer las capacidades de su formato de imagen.

create() debería crear una instancia de su subclase QImageIOHandler, con el dispositivo y el formato proporcionados correctamente configurados, y devolver este manejador.

El archivo de metadatos json del complemento debe contener información sobre los formatos de imagen que admite, junto con los tipos MIME correspondientes (uno para cada formato). Para un plugin jpeg, esto podría, por ejemplo, tener el siguiente aspecto:

{
  "Keys": [ "jpg", "jpeg" ],
  "MimeTypes": [ "image/jpeg", "image/jpeg" ]
}

Diferentes plugins pueden soportar diferentes capacidades. Por ejemplo, puedes tener un plugin que soporte lectura del formato GIF, y otro que soporte escritura. Qt seleccionará el plugin correcto para el trabajo, dependiendo del valor de retorno de capabilities(). Si varios plugins soportan la misma capacidad, Qt seleccionará uno arbitrariamente.

Ver también QImageIOHandler y Cómo crear plugins de Qt.

Documentación de tipos de miembros

enum QImageIOPlugin::Capacidad
flags QImageIOPlugin::Capacidades

Este enum describe las capacidades de un QImageIOPlugin.

ConstanteValorDescripción
QImageIOPlugin::CanRead0x1El complemento puede leer imágenes.
QImageIOPlugin::CanWrite0x2El plugin puede escribir imágenes.
QImageIOPlugin::CanReadIncremental0x4El complemento puede leer imágenes incrementalmente.

El tipo Capabilities es un typedef para QFlags<Capability>. Almacena una combinación OR de valores de Capacidad.

Documentación de las funciones miembro

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

Construye un plugin de imagen con la dirección parent. Esto es invocado automáticamente por el código generado por moc que exporta el plugin.

[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()

Destruye el plugin de formato de imagen.

Nunca tiene que llamar a esto explícitamente. Qt destruye un plugin automáticamente cuando ya no se utiliza.

[pure virtual] QImageIOPlugin::Capabilities QImageIOPlugin::capabilities(QIODevice *device, const QByteArray &format) const

Devuelve las capacidades del complemento, basándose en los datos de device y el formato format. Si device es 0, simplemente debería informar si el formato puede leerse o escribirse. De lo contrario, debería intentar determinar si el formato dado (o cualquier formato soportado por el complemento si format está vacío) puede leerse o escribirse en device. Debería hacer esto sin cambiar el estado de device (típicamente usando QIODevice::peek()).

Por ejemplo, si QImageIOPlugin soporta el formato BMP, format está vacío o "bmp", y los datos en el dispositivo comienzan con los caracteres "BM", esta función debería devolver CanRead. Si format es "bmp", device es 0 y el manejador soporta tanto lectura como escritura, esta función debería devolver CanRead | CanWrite.

Los nombres de formato se indican siempre en minúsculas.

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

Crea y devuelve una subclase QImageIOHandler, con device y format establecidos. format debe proceder de los valores listados en la entrada "Keys" de los metadatos del complemento, o estar vacía. Si está vacío, los datos de device deben haber sido reconocidos por el método capabilities() (con un formato igualmente vacío).

Los nombres de formato se indican siempre en minúsculas.

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