Класс QImageIOPlugin
Класс QImageIOPlugin определяет интерфейс для написания плагина формата изображений. Подробнее...
| Заголовок: | #include <QImageIOPlugin> |
| qmake: | QT += gui |
| Наследуется от: | QObject |
Примечание: Все функции в этом классе являются реентерабельными.
Типы публичного доступа
| flags | Возможности |
| перечисление | Возможность { МожноЧитать, МожноЗаписать, МожноЧитатьПоЧастям } |
Функции публичного доступа
| QImageIOPlugin(QObject *parent = Q_NULLPTR) | |
| virtual | ~QImageIOPlugin() |
| virtual Возможности | возможности(QIODevice *device, const QByteArray &format) const = 0 |
| virtual QImageIOHandler * | создать(QIODevice *device, const QByteArray &format = QByteArray()) const = 0 |
- 32 функции публичного доступа, унаследованные от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 слот публичного доступа, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 11 статические члены публичного доступа, унаследованные от QObject
- 9 защищённые функции, унаследованные от 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::Возможностьflags QImageIOPlugin::Возможности
Это перечисление описывает возможности QImageIOPlugin.
| Постоянная | Значение | Описание |
|---|---|---|
QImageIOPlugin::CanRead |
0x1 |
Плагин может читать изображения. |
QImageIOPlugin::CanWrite |
0x2 |
Плагин может записывать изображения. |
QImageIOPlugin::CanReadIncremental |
0x4 |
Плагин может читать изображения по частям. |
Тип Возможности является типом-синонимом для QFlags<Возможность>. Он хранит логическое ИЛИ сочетание значений Возможность.
Документация по функциям-членам
QImageIOPlugin::QImageIOPlugin(QObject *parent = Q_NULLPTR)
Конструктор плагина изображений с заданным parent. Вызывается автоматически сгенерированным кодом moc, который экспортирует плагин.
[virtual] QImageIOPlugin::~QImageIOPlugin()
Удаляет плагин формата изображений.
Вам никогда не нужно вызывать это явно. Qt удаляет плагин автоматически, когда он больше не используется.
[pure virtual] Возможности QImageIOPlugin::возможности(QIODevice *device, const QByteArray &format) const
Возвращает возможности плагина, основанные на данных в device и формате format. Если device пуст, следует просто сообщить, можно ли читать или записывать формат. В противном случае, следует попытаться определить, можно ли читать или записывать заданный формат (или любой формат, поддерживаемый плагином, если 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/qt-5.9/qimageioplugin.html