Spec-Zone.ru › Qt 6.1

Класс QImageIOPlugin

Класс QImageIOPlugin определяет интерфейс для написания плагина формата изображения. Подробнее...

Заголовок: #include <QImageIOPlugin>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследует: QObject
  • Список всех членов, включая наследуемые

Примечание: Все функции в этом классе являются повторно-входными.

Типы публичного доступа

флаги Возможности
Перечисление Возможность { МожетЧитать, МожетЗаписывать, МожетЧитатьПоЧастям }

Функции публичного доступа

QImageIOPlugin(QObject *parent = nullptr)
virtual ~QImageIOPlugin()
virtual QImageIOPlugin::Возможности возможности(QIODevice *device, const QByteArray &format) const = 0
virtual QImageIOHandler * создать(QIODevice *device, const QByteArray &format = QByteArray()) const = 0

Подробное описание

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 Плагин может читать изображения по частям.

Тип Возможности является типом-синонимом для 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/qt-6.1/qimageioplugin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API