Spec-Zone.ru › Qt 5.11

Класс QImageWriter

Класс QImageWriter предоставляет формат-независимый интерфейс для записи изображений в файлы или другие устройства. Подробнее...

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

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

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

перечисление ImageWriterError { DeviceError, UnsupportedFormatError, InvalidImageError, UnknownError }

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

QImageWriter()
QImageWriter(QIODevice *device, const QByteArray &format)
QImageWriter(const QString &fileName, const QByteArray &format = QByteArray())
~QImageWriter()
bool canWrite() const
int compression() const
QIODevice * device() const
QImageWriter::ImageWriterError error() const
QString errorString() const
QString fileName() const
QByteArray format() const
float gamma() const
bool optimizedWrite() const
bool progressiveScanWrite() const
int quality() const
void setCompression(int compression)
void setDevice(QIODevice *device)
void setFileName(const QString &fileName)
void setFormat(const QByteArray &format)
void setGamma(float gamma)
void setOptimizedWrite(bool optimize)
void setProgressiveScanWrite(bool progressive)
void setQuality(int quality)
void setSubType(const QByteArray &type)
void setText(const QString &key, const QString &text)
void setTransformation(QImageIOHandler::Transformations transform)
QByteArray subType() const
QList<QByteArray> supportedSubTypes() const
bool supportsOption(QImageIOHandler::ImageOption option) const
QImageIOHandler::Transformations transformation() const
bool write(const QImage &image)

Статические публичные члены

QList<QByteArray> supportedImageFormats()
QList<QByteArray> supportedMimeTypes()

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

Класс QImageWriter предоставляет формат-независимый интерфейс для записи изображений в файлы или другие устройства.

QImageWriter поддерживает установку параметров, специфичных для формата, таких как уровень гамма-коррекции, уровень сжатия и качество, перед сохранением изображения. Если вам не нужны такие параметры, вы можете использовать QImage::save() или QPixmap::save() вместо этого.

Для сохранения изображения вы начинаете с создания объекта QImageWriter. Передайте имя файла или указатель на устройство, а также формат изображения в конструктор QImageWriter. Затем вы можете установить несколько параметров, таких как уровень гамма-коррекции (вызвав setGamma()) и качество (вызвав setQuality()). canWrite() возвращает true если QImageWriter может записать изображение (то есть формат изображения поддерживается и устройство открыто для записи). Вызовите write() для записи изображения в устройство.

Если при записи изображения произошла ошибка, write() вернет false. Затем вы можете вызвать error() для определения типа ошибки или errorString() для получения удобочитаемого описания ошибки.

Вызовите supportedImageFormats() для получения списка форматов, которые может записывать QImageWriter. QImageWriter поддерживает все встроенные форматы изображений, а также любые плагины форматов изображений, которые поддерживают запись.

См. также QImageReader, QImageIOHandler и QImageIOPlugin.

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

перечисление QImageWriter::ImageWriterError

Это перечисление описывает ошибки, которые могут возникнуть при записи изображений с помощью QImageWriter.

Постоянная Значение Описание
QImageWriter::DeviceError 1 QImageWriter столкнулся с ошибкой устройства при записи данных изображения. Обратитесь к своему устройству для получения дополнительной информации об ошибке.
QImageWriter::UnsupportedFormatError 2 Qt не поддерживает требуемый формат изображения.
QImageWriter::InvalidImageError 3 Была предпринята попытка записать некорректное QImage. Примером некорректного изображения является null-указатель QImage.
QImageWriter::UnknownError 0 Произошла неизвестная ошибка. Если вы получили это значение после вызова write(), скорее всего, это вызвано ошибкой в QImageWriter.

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

QImageWriter::QImageWriter()

Создаёт пустой объект QImageWriter. Перед записью необходимо вызвать setFormat() для установки формата изображения, а затем setDevice() или setFileName().

QImageWriter::QImageWriter(QIODevice *device, const QByteArray &format)

Создаёт объект QImageWriter, используя устройство device и формат изображения format.

QImageWriter::QImageWriter(const QString &fileName, const QByteArray &format = QByteArray())

Создаёт объект QImageWriter, который будет записывать в файл с именем fileName, используя формат изображения format. Если format не указан, QImageWriter определит формат изображения, анализируя расширение fileName.

QImageWriter::~QImageWriter()

Деструктор объекта QImageWriter.

bool QImageWriter::canWrite() const

Возвращает true , если QImageWriter может записать изображение; то есть, формат изображения поддерживается и назначенное устройство открыто для чтения.

См. также write(), setDevice(), и setFormat().

int QImageWriter::compression() const

Возвращает степень сжатия изображения.

См. также setCompression().

QIODevice *QImageWriter::device() const

Возвращает устройство, в настоящее время назначенное QImageWriter, или 0, если устройство не назначено.

См. также setDevice().

QImageWriter::ImageWriterError QImageWriter::error() const

Возвращает тип ошибки, которая произошла последней.

См. также ImageWriterError и errorString().

QString QImageWriter::errorString() const

Возвращает удобочитаемое описание последней ошибки.

См. также error().

QString QImageWriter::fileName() const

Если текущее назначенное устройство является объектом QFile, или если был вызван setFileName(), эта функция возвращает имя файла, в который записывает QImageWriter. В противном случае (то есть, если устройство не назначено или устройство не является QFile), возвращается пустая строка QString.

См. также setFileName() и setDevice().

QByteArray QImageWriter::format() const

Возвращает формат, используемый QImageWriter для записи изображений.

См. также setFormat().

float QImageWriter::gamma() const

Возвращает уровень гаммы изображения.

См. также setGamma().

bool QImageWriter::optimizedWrite() const

Возвращает, включена ли оптимизация для записи изображения.

Эта функция была добавлена в Qt 5.5.

См. также setOptimizedWrite().

bool QImageWriter::progressiveScanWrite() const

Возвращает, должно ли изображение записываться как прогрессивное изображение.

Эта функция была добавлена в Qt 5.5.

См. также setProgressiveScanWrite().

int QImageWriter::quality() const

Возвращает качество настройки формата изображения.

См. также setQuality().

void QImageWriter::setCompression(int compression)

Это функция, специфичная для формата изображения, которая устанавливает степень сжатия изображения. Для форматов изображений, которые не поддерживают настройку сжатия, это значение игнорируется.

Диапазон значений compression зависит от формата изображения. Например, формат "tiff" поддерживает два значения: 0 (без сжатия) и 1 (сжатие LZW).

См. также compression().

void QImageWriter::setDevice(QIODevice *device)

Устанавливает устройство QImageWriter на device. Если устройство уже установлено, старое устройство удаляется из QImageWriter и иначе остается неизменным.

Если устройство ещё не открыто, QImageWriter попытается открыть устройство в режиме QIODevice::WriteOnly, вызвав open(). Обратите внимание, что это не работает для некоторых устройств, таких как QProcess, QTcpSocket и QUdpSocket, где требуется больше логики для открытия устройства.

См. также device() и setFileName().

void QImageWriter::setFileName(const QString &fileName)

Устанавливает имя файла QImageWriter на fileName. Внутри QImageWriter будет создан объект QFile и открыт в режиме QIODevice::WriteOnly, и этот файл будет использоваться при записи изображений.

См. также fileName() и setDevice().

void QImageWriter::setFormat(const QByteArray &format)

Устанавливает формат, который будет использовать QImageWriter при записи изображений, на format. format — строка текста, регистронезависимая. Пример:

QImageWriter writer;
writer.setFormat("png"); // same as writer.setFormat("PNG");

Вы можете вызвать supportedImageFormats(), чтобы получить полный список форматов, поддерживаемых QImageWriter.

См. также format().

void QImageWriter::setGamma(float gamma)

Это функция, специфичная для формата изображения, которая устанавливает уровень гаммы изображения на gamma. Для форматов изображений, которые не поддерживают настройку уровня гаммы, это значение игнорируется.

Диапазон значений gamma зависит от формата изображения. Например, формат "png" поддерживает диапазон гаммы от 0.0 до 1.0.

См. также gamma() и quality().

void QImageWriter::setOptimizedWrite(bool optimize)

Это функция, специфичная для формата изображения, которая устанавливает флаг optimize при записи изображений. Для форматов изображений, которые не поддерживают установку флага optimize, это значение игнорируется.

По умолчанию — false.

Эта функция была добавлена в Qt 5.5.

См. также optimizedWrite().

void QImageWriter::setProgressiveScanWrite(bool progressive)

Эта функция, специфичная для формата изображения, включает прогрессивное сканирование при записи изображений. Для форматов изображений, которые не поддерживают установку флага progressive сканирования, это значение игнорируется.

По умолчанию — false.

Эта функция была добавлена в Qt 5.5.

См. также progressiveScanWrite().

void QImageWriter::setQuality(int quality)

Устанавливает настройку качества формата изображения на quality.

Некоторые форматы изображений, особенно сжатые, подразумевают компромисс между а) визуальным качеством результирующего изображения и б) временем выполнения кодирования и уровнем сжатия. Эта функция устанавливает уровень этого компромисса для форматов изображений, которые его поддерживают. Для других форматов это значение игнорируется.

Диапазон значений quality зависит от формата изображения. Например, формат "jpeg" поддерживает диапазон качества от 0 (низкое визуальное качество, высокое сжатие) до 100 (высокое визуальное качество, низкое сжатие).

См. также quality().

void QImageWriter::setSubType(const QByteArray &type)

Это функция, специфичная для формата изображения, которая устанавливает подтип изображения на type. Подтип может быть использован обработчиком для определения формата, который следует использовать при сохранении изображения.

Например, сохранение изображения в формате DDS с подтипом A8R8G8R8:

QImageWriter writer("some/image.dds");
if (writer.supportsOption(QImageIOHandler::SubType))
    writer.setSubType("A8R8G8B8");
writer.write(image);

Эта функция была добавлена в Qt 5.4.

См. также subType().

void QImageWriter::setText(const QString &key, const QString &text)

Устанавливает текстовую информацию изображения, связанную с ключом key, на text. Это полезно для хранения информации об авторских правах или другой информации об изображении. Пример:

QImage image("some/image.jpeg");
QImageWriter writer("images/outimage.png", "png");
writer.setText("Author", "John Smith");
writer.write(image);

Если вы хотите сохранить один блок данных (например, комментарий), вы можете передать пустой ключ или использовать универсальный ключ, например, "Описание".

Ключ и текст будут встроены в данные изображения после вызова write().

Поддержка этого варианта реализована через QImageIOHandler::Description.

Эта функция была добавлена в Qt 4.1.

См. также QImage::setText() и QImageReader::text().

void QImageWriter::setTransformation(QImageIOHandler::Transformations transform)

Устанавливает метаданные преобразований изображения, включая ориентацию, на transform.

Если метаданные преобразования не поддерживаются форматом изображения, преобразование применяется до записи.

Эта функция была добавлена в Qt 5.5.

См. также transformation() и write().

QByteArray QImageWriter::subType() const

Возвращает подтип изображения.

Эта функция была добавлена в Qt 5.4.

См. также setSubType().

[static] QList<QByteArray> QImageWriter::supportedImageFormats()

Возвращает список форматов изображений, поддерживаемых QImageWriter.

По умолчанию Qt может записывать следующие форматы:

Формат MIME тип Описание
BMP image/bmp Растровое изображение Windows
JPG image/jpeg Joint Photographic Experts Group
PNG image/png Portable Network Graphics
PBM image/x-portable-bitmap Переносимое растровое изображение
PGM image/x-portable-graymap Переносимая серая карта
PPM image/x-portable-pixmap Переносимое пиксельное изображение
XBM image/x-xbitmap Растровое изображение X11
XPM image/x-xpixmap Пиксельное изображение X11

Чтение и запись файлов SVG поддерживается модулем Qt SVG. Модуль Qt Image Formats предоставляет поддержку дополнительных форматов изображений.

Обратите внимание, что экземпляр QApplication должен быть создан перед вызовом этой функции.

См. также setFormat(), QImageReader::supportedImageFormats() и QImageIOPlugin.

[static] QList<QByteArray> QImageWriter::supportedMimeTypes()

Возвращает список MIME типов, поддерживаемых QImageWriter.

Обратите внимание, что экземпляр QApplication должен быть создан перед вызовом этой функции.

См. также supportedImageFormats() и QImageReader::supportedMimeTypes().

QList<QByteArray> QImageWriter::supportedSubTypes() const

Возвращает список подтипов, поддерживаемых изображением.

Эта функция была добавлена в Qt 5.4.

bool QImageWriter::supportsOption(QImageIOHandler::ImageOption option) const

Возвращает true если писатель поддерживает option; в противном случае возвращает false.

Различные форматы изображений поддерживают разные параметры. Вызовите эту функцию, чтобы определить, поддерживается ли определенный параметр текущим форматом. Например, формат PNG позволяет встраивать текст в метаданные изображения (см. text()).

QImageWriter writer(fileName);
if (writer.supportsOption(QImageIOHandler::Description))
    writer.setText("Author", "John Smith");

Параметры могут быть проверены после того, как писатель будет связан с форматом.

Эта функция была добавлена в Qt 4.2.

См. также QImageReader::supportsOption() и setFormat().

QImageIOHandler::Transformations QImageWriter::transformation() const

Возвращает преобразование и ориентацию, к которым было установлено изображение для записи.

Эта функция была добавлена в Qt 5.5.

См. также setTransformation().

bool QImageWriter::write(const QImage &image)

Записывает изображение image в назначенное устройство или имя файла. Возвращает true при успехе; в противном случае возвращает false. Если операция завершится неудачно, вы можете вызвать error() для определения типа возникшей ошибки или errorString() для получения удобочитаемого описания ошибки.

См. также canWrite(), error() и errorString().

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

Spec-Zone.ru

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