Класс QImageIOPlugin
Класс QImageIOPlugin определяет интерфейс для написания плагина формата изображения. Подробнее...
| Заголовок: | #include <QImageIOPlugin> |
| qmake: | QT += gui |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются взаимоисключающими.
Открытые типы
| flags | Возможности |
| перечисление | Возможность { МожетЧитать, МожетЗаписывать, МожетЧитатьПоЧастям } |
Открытые функции
| QImageIOPlugin(QObject *parent = nullptr) | |
| виртуальный | ~QImageIOPlugin() |
| виртуальный QImageIOPlugin::Возможности | возможности(QIODevice *device, const QByteArray &format) const = 0 |
| виртуальный QImageIOHandler * | создать(QIODevice *device, const QByteArray &format = QByteArray()) const = 0 |
- 34 открытых функций, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 1 открытая переменная, унаследованная от QObject
- 10 статических открытых членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от QObject
- 2 защищённых переменных, унаследованных от QObject
Подробное описание
Класс QImageIOPlugin определяет интерфейс для написания плагина формата изображения.
QImageIOPlugin — фабрика для создания объектов QImageIOHandler, которые используются внутри QImageReader и QImageWriter для добавления поддержки различных форматов изображений в Qt.
Для написания плагина ввода/вывода изображений необходимо унаследовать от этого базового класса, переопределить чистые виртуальные функции возможности() и создать(), а также экспортировать класс с помощью макроса Q_PLUGIN_METADATA(). Подробности см. в разделе Как создать плагины Qt.
Плагин формата изображения может поддерживать три возможности: чтение (МожетЧитать), запись (МожетЗаписывать) и последовательное чтение (МожетЧитатьПоЧастям). В своём подклассе переопределите возможности(), чтобы указать возможности вашего формата изображения.
создать() должен создать экземпляр вашего подкласса QImageIOHandler с заданными устройством и форматом и вернуть этот обработчик.
Файл метаданных json для плагина должен содержать информацию о форматах изображений, которые поддерживает плагин, вместе с соответствующими типами MIME (по одному для каждого формата). Например, для плагина jpeg это может выглядеть следующим образом:
{
"Keys": [ "jpg", "jpeg" ],
"MimeTypes": [ "image/jpeg", "image/jpeg" ]
} Различные плагины могут поддерживать разные возможности. Например, один плагин может поддерживать чтение формата GIF, а другой — запись. Qt выберет подходящий плагин в зависимости от возвращаемого значения возможности(). Если несколько плагинов поддерживают одну и ту же возможность, Qt выберет одну произвольно.
См. также QImageIOHandler и Как создать плагины Qt.
Документация по типам членов
перечисление QImageIOPlugin::Возможность QImageIOPlugin::Возможности
Это перечисление описывает возможности плагина QImageIOPlugin.
| Постоянная | Значение | Описание |
|---|---|---|
QImageIOPlugin::CanRead |
0x1 |
Плагин может читать изображения. |
QImageIOPlugin::CanWrite |
0x2 |
Плагин может записывать изображения. |
QImageIOPlugin::CanReadIncremental |
0x4 |
Плагин может читать изображения по частям. |
Тип Возможности — это typedef для QFlags<Возможность>. Он хранит логическое ИЛИ сочетание значений Возможность.
Документация по функциям членов
QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)
Конструирует плагин изображения с заданным parent. Это вызывается автоматически сгенерированным кодом moc, который экспортирует плагин.
[virtual] QImageIOPlugin::~QImageIOPlugin()
Удаляет плагин формата изображения.
Вам никогда не нужно вызывать это явным образом. Qt автоматически удаляет плагин, когда он больше не используется.
[pure virtual] QImageIOPlugin::Возможности QImageIOPlugin::возможности(QIODevice *device, const QByteArray &format) const
Возвращает возможности плагина на основе данных в device и формате format. Если device равен 0, он должен просто сообщить, можно ли прочитать или записать формат. В противном случае он должен попытаться определить, можно ли прочитать или записать указанный формат (или любой формат, поддерживаемый плагином, если format пусто) из device. Это должно выполняться без изменения состояния device (обычно с помощью QIODevice::peek()).
Например, если QImageIOPlugin поддерживает формат BMP, format пусто или "bmp", а данные в устройстве начинаются с символов "BM", эта функция должна вернуть МожетЧитать. Если format равно "bmp", device равно 0 и обработчик поддерживает чтение и запись, эта функция должна вернуть МожетЧитать | МожетЗаписывать.
Имена форматов всегда задаются в нижнем регистре.
[pure virtual] QImageIOHandler *QImageIOPlugin::создать(QIODevice *device, const QByteArray &format = QByteArray()) const
Создаёт и возвращает подкласс QImageIOHandler с заданными device и format. format должен соответствовать значениям, перечисленным в записи "Keys" в метаданных плагина, или быть пустым. Если он пуст, данные в device должны быть распознаны методом возможности() (с аналогичным пустым форматом).
Имена форматов всегда задаются в нижнем регистре.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qimageioplugin.html