Spec-Zone.ru › Qt 5.12

Класс QImageIOPlugin

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

Заголовок: #include <QImageIOPlugin>
qmake: QT += gui
Наследует: QObject
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

Типы public

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

Функции public

QImageIOPlugin(QObject *parent = nullptr)
virtual ~QImageIOPlugin()
virtual QImageIOPlugin::Возможности capabilities(QIODevice *device, const QByteArray &format) const = 0
virtual QImageIOHandler * create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0
  • 31 функция public, унаследованная от QObject

Статические public члены

const QMetaObject staticMetaObject
  • 9 статических public членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 public слот, унаследованный от QObject
  • 2 сигнала, унаследованные от QObject
  • 9 защищенных функций, унаследованных от QObject

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

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

QImageIOPlugin — это фабрика для создания объектов QImageIOHandler, которые используются внутри QImageReader и QImageWriter для добавления поддержки различных форматов изображений в Qt.

Для написания плагина ввода/вывода изображений необходимо унаследовать от этого базового класса, переопределить чистые виртуальные функции capabilities() и create() и экспортировать класс с помощью макроса Q_PLUGIN_METADATA(). Подробнее см. в разделе Как создать плагины Qt.

Плагин формата изображения может поддерживать три возможности: чтение (МожетЧитать), запись (МожетЗаписать) и чтение инкрементально (МожетЧитатьИнкрементально). Переопределите capabilities() в подклассе, чтобы задать возможности вашего формата изображения.

create() должен создать экземпляр вашего подкласса QImageIOHandler с правильно заданными устройством и форматом и вернуть этот обработчик.

Файл метаданных json для плагина должен содержать информацию о форматах изображений, которые поддерживаются плагином, вместе с соответствующими MIME-типами (по одному для каждого формата). Например, для плагина jpeg это может выглядеть следующим образом:

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

Различные плагины могут поддерживать различные возможности. Например, один плагин может поддерживать чтение формата GIF, а другой — запись. Qt выберет соответствующий плагин для задачи, в зависимости от возвращаемого значения capabilities(). Если несколько плагинов поддерживают одну и ту же возможность, Qt выберет один произвольно.

См. также QImageIOHandler и Как создать плагины Qt.

Документация по типам членов

перечисление QImageIOPlugin::Возможностьфлаги QImageIOPlugin::Возможности

Этот перечисление описывает возможности QImageIOPlugin.

Постоянная Значение Описание
QImageIOPlugin::CanRead 0x1 Плагин может читать изображения.
QImageIOPlugin::CanWrite 0x2 Плагин может записывать изображения.
QImageIOPlugin::CanReadIncremental 0x4 Плагин может читать изображения инкрементально.

Тип Capabilities — это typedef для QFlags<Capability>. Он хранит логическое ИЛИ комбинацию значений Capability.

Документация по членам-функциям

QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)

Создаёт плагин изображения с заданным parent. Это вызывается автоматически сгенерированным кодом moc, который экспортирует плагин.

[virtual] QImageIOPlugin::~QImageIOPlugin()

Уничтожает плагин формата изображения.

Вам никогда не нужно вызывать его явно. Qt автоматически уничтожает плагин, когда он больше не используется.

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

Возвращает возможности плагина, основанные на данных в device и формате format. Если device 0, он должен просто сообщить, может ли формат быть прочитан или записан. В противном случае он должен попытаться определить, может ли заданный формат (или любой формат, поддерживаемый плагином, если format пустой) быть прочитан или записан в device. Он должен сделать это без изменения состояния device (обычно используя QIODevice::peek()).

Например, если QImageIOPlugin поддерживает формат BMP, format пустой или "bmp", а данные в устройстве начинаются с символов "BM", эта функция должна вернуть CanRead. Если format "bmp", device 0 и обработчик поддерживает как чтение, так и запись, эта функция должна вернуть CanRead | CanWrite.

Имена форматов всегда приводятся в нижнем регистре.

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

Создаёт и возвращает подкласс QImageIOHandler со значениями device и format. format должен быть взят из значений, перечисленных в записи "Keys" в метаданных плагина, или быть пустым. Если он пуст, данные в device должны быть распознаны методом capabilities() (с таким же пустым форматом).

Имена форматов всегда приводятся в нижнем регистре.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qimageioplugin.html

Spec-Zone.ru

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