Класс QImage
Класс QImage предоставляет аппаратную независимую обработку изображений, позволяющую напрямую обращаться к пиксельным данным и использовать его как устройство рисования. Подробнее...
| Заголовок: | #include <QImage> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QPaintDevice |
Примечание: Все функции в этом классе являются реентерабельными.
Типы
| перечисление | Формат { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, Format_RGB32, …, Format_RGBA32FPx4_Premultiplied } |
| перечисление | Режим инверсии { InvertRgb, InvertRgba } |
Открытые функции
| QImage(QImage &&other) | |
| QImage(const QImage &image) | |
| QImage(const QString &fileName, const char *format = nullptr) | |
| QImage(const char *const [] xpm) | |
| QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(int width, int height, QImage::Format format) | |
| QImage(const QSize &size, QImage::Format format) | |
| QImage() | |
| QImage & | operator=(QImage &&other) |
| QImage & | operator=(const QImage &image) |
| virtual | ~QImage() |
| bool | allGray() const |
| void | applyColorTransform(const QColorTransform &transform) |
| int | bitPlaneCount() const |
| uchar * | bits() |
| const uchar * | bits() const |
| qsizetype | bytesPerLine() const |
| qint64 | cacheKey() const |
| QRgb | color(int i) const |
| int | colorCount() const |
| QColorSpace | colorSpace() const |
| QList<QRgb> | colorTable() const |
| const uchar * | constBits() const |
| const uchar * | constScanLine(int i) const |
| void | convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | convertToColorSpace(const QColorSpace &colorSpace) |
| QImage | convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
| QImage | convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
| QImage | convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const |
| QImage | convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
| QImage | convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
| QImage | convertedToColorSpace(const QColorSpace &colorSpace) const |
| QImage | copy(const QRect &rectangle = QRect()) const |
| QImage | copy(int x, int y, int width, int height) const |
| QImage | createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const |
| QImage | createHeuristicMask(bool clipTight = true) const |
| QImage | createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const |
| int | depth() const |
| QSizeF | deviceIndependentSize() const |
| qreal | devicePixelRatio() const |
| int | dotsPerMeterX() const |
| int | dotsPerMeterY() const |
| void | fill(uint pixelValue) |
| void | fill(const QColor &color) |
| void | fill(Qt::GlobalColor color) |
| QImage::Format | format() const |
| bool | hasAlphaChannel() const |
| int | height() const |
| void | invertPixels(QImage::InvertMode mode = InvertRgb) |
| bool | isGrayscale() const |
| bool | isNull() const |
| bool | load(const QString &fileName, const char *format = nullptr) |
| bool | load(QIODevice *device, const char *format) |
| bool | loadFromData(QByteArrayView data, const char *format = nullptr) |
| bool | loadFromData(const uchar *data, int len, const char *format = nullptr) |
| bool | loadFromData(const QByteArray &data, const char *format = nullptr) |
| void | зеркалировать(bool horizontal = false, bool vertical = true) |
| QImage | отражённый(bool horizontal = false, bool vertical = true) const & |
| QImage | отражённый(bool horizontal = false, bool vertical = true) && |
| QPoint | смещение() const |
| QRgb | пиксель(const QPoint &position) const |
| QRgb | пиксель(int x, int y) const |
| QColor | цветПикселя(const QPoint &position) const |
| QColor | цветПикселя(int x, int y) const |
| QPixelFormat | форматПикселей() const |
| int | индексПикселя(const QPoint &position) const |
| int | индексПикселя(int x, int y) const |
| QRect | прямоугольник() const |
| bool | переинтерпретироватьКакФормат(QImage::Format format) |
| void | обменRGB() |
| QImage | обменRGB() const & |
| QImage | обменRGB() && |
| bool | сохранить(const QString &fileName, const char *format = nullptr, int quality = -1) const |
| bool | сохранить(QIODevice *device, const char *format = nullptr, int quality = -1) const |
| QImage | масштабированная(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QImage | масштабированная(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QImage | масштабироватьДоВысоты(int height, Qt::TransformationMode mode = Qt::FastTransformation) const |
| QImage | масштабироватьДоШирины(int width, Qt::TransformationMode mode = Qt::FastTransformation) const |
| uchar * | строкаСканирования(int i) |
| const uchar * | строкаСканирования(int i) const |
| void | установитьАльфаКанал(const QImage &alphaChannel) |
| void | установитьЦвет(int index, QRgb colorValue) |
| void | установитьКоличествоЦветов(int colorCount) |
| void | установитьЦветовоеПространство(const QColorSpace &colorSpace) |
| void | установитьЦветовоюТаблицу(const QList<QRgb> &colors) |
| void | установитьОтношениеПикселейУстройства(qreal scaleFactor) |
| void | установитьТочкиНаМетрX(int x) |
| void | установитьТочкиНаМетрY(int y) |
| void | установитьСмещение(const QPoint &offset) |
| void | установитьПиксель(const QPoint &position, uint index_or_rgb) |
| void | установитьПиксель(int x, int y, uint index_or_rgb) |
| void | установитьЦветПикселя(const QPoint &position, const QColor &color) |
| void | установитьЦветПикселя(int x, int y, const QColor &color) |
| void | установитьТекст(const QString &key, const QString &text) |
| QSize | размер() const |
| qsizetype | размерВБайтах() const |
| void | обменять(QImage &other) |
| QString | текст(const QString &key = QString()) const |
| QStringList | ключиТекста() const |
| CGImageRef | toCGImage() const |
| HBITMAP | toHBITMAP() const |
| HICON | toHICON(const QImage &mask = {}) const |
| QImage | преобразованная(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const |
| bool | действительно(const QPoint &pos) const |
| bool | действительно(int x, int y) const |
| int | ширина() const |
| QVariant | operator QVariant() const |
| bool | !=(const QImage &image) const |
| bool | ==(const QImage &image) const |
Статические публичные члены
| QImage | fromData(QByteArrayView data, const char *format = nullptr) |
| QImage | fromData(const uchar *data, int size, const char *format = nullptr) |
| QImage | fromData(const QByteArray &data, const char *format = nullptr) |
| QImage | fromHBITMAP(HBITMAP hbitmap) |
| QImage | fromHICON(HICON icon) |
| QImage::Format | toImageFormat(QPixelFormat format) |
| QPixelFormat | toPixelFormat(QImage::Format format) |
| QTransform | trueMatrix(const QTransform &matrix, int width, int height) |
Связанные нечлены
| QImageCleanupFunction | |
| QDataStream & | operator<<(QDataStream &stream, const QImage &image) |
| QDataStream & | operator>>(QDataStream &stream, QImage &image) |
Подробное описание
Qt предоставляет четыре класса для работы с данными изображений: QImage, QPixmap, QBitmap и QPicture. QImage разработан и оптимизирован для ввода-вывода и прямого доступа и обработки пикселей, а QPixmap — для отображения изображений на экране. QBitmap — это всего лишь удобный класс, наследующий QPixmap, обеспечивающий глубину 1. Наконец, класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter.
Поскольку QImage является подклассом QPaintDevice, QPainter может использоваться для прямого рисования на изображениях. При использовании QPainter на QImage рисование может выполняться в другом потоке, отличном от текущего потока GUI.
Класс QImage поддерживает несколько форматов изображений, описанных в перечислении Format. К ним относятся монохромные, 8-битные, 32-битные и изображения с альфа-каналом, которые доступны во всех версиях Qt 4.x.
QImage предоставляет набор функций, которые можно использовать для получения различной информации об изображении. Также есть несколько функций, которые позволяют преобразовывать изображение.
Объекты QImage могут передаваться по значению, поскольку класс QImage использует неявное совместное использование данных. Объекты QImage также могут быть прочитаны и сравнены.
Примечание: Если вы хотите загружать объекты QImage в статическом сборке Qt, см. Руководство по плагинам.
Предупреждение: Рисование на QImage с форматом QImage::Format_Indexed8 не поддерживается.
Чтение и запись файлов изображений
QImage предоставляет несколько способов загрузки файла изображения: файл может загружаться при создании объекта QImage или с помощью функций load() или loadFromData() позже. QImage также предоставляет статическую функцию fromData(), которая создает QImage из заданных данных. При загрузке изображения имя файла может ссылаться на фактический файл на диске или на один из встроенных ресурсов приложения. См. обзор Системы ресурсов Qt для получения подробной информации о том, как встраивать изображения и другие файлы ресурсов в исполняемый файл приложения.
Просто вызовите функцию save() для сохранения объекта QImage.
Полный список поддерживаемых форматов файлов доступен через функции QImageReader::supportedImageFormats() и QImageWriter::supportedImageFormats(). Новые форматы файлов могут быть добавлены в качестве плагинов. По умолчанию Qt поддерживает следующие форматы:
| Формат | Описание | Поддержка Qt |
|---|---|---|
| BMP | Растровый формат Windows | Чтение/запись |
| GIF | Формат Graphic Interchange (необязательно) | Чтение |
| JPG | Формат Joint Photographic Experts Group | Чтение/запись |
| JPEG | Формат Joint Photographic Experts Group | Чтение/запись |
| PNG | Формат Portable Network Graphics | Чтение/запись |
| PBM | Формат Portable Bitmap | Чтение |
| PGM | Формат Portable Graymap | Чтение |
| PPM | Формат Portable Pixmap | Чтение/запись |
| XBM | Растровый формат X11 | Чтение/запись |
| XPM | Растровый формат X11 | Чтение/запись |
Информация об изображении
QImage предоставляет набор функций, которые можно использовать для получения различной информации об изображении:
| Доступные функции | |
|---|---|
| Геометрия | Функции size(), width(), height(), dotsPerMeterX() и dotsPerMeterY() предоставляют информацию о размерах и соотношении сторон изображения. Функция rect() возвращает ограничительный прямоугольник изображения. Функция valid() указывает, находится ли заданная пара координат внутри этого прямоугольника. Функция offset() возвращает количество пикселей, на которое изображение должно быть смещено при позиционировании относительно других изображений, которые также можно изменять с помощью функции setOffset(). |
| Цвета | Цвет пикселя можно получить, передав его координаты функции pixel(). Функция pixel() возвращает цвет в виде значения QRgb независимо от формата изображения. В случае монохромных и 8-битных изображений функции colorCount() и colorTable() предоставляют информацию о цветовых компонентах, используемых для хранения данных изображения: функция colorTable() возвращает всю таблицу цветов изображения. Для получения отдельной записи используйте функцию pixelIndex() для получения индекса пикселя для заданной пары координат, а затем функцию color() для получения цвета. Обратите внимание, что если вы создаете 8-битное изображение вручную, вы также должны установить для него допустимую таблицу цветов. Функция hasAlphaChannel() указывает, учитывает ли формат изображения альфа-канал. Функции allGray() и isGrayscale() сообщают, состоят ли цвета изображения только из оттенков серого. См. также разделы Обработка пикселей и Преобразования изображений. |
| Текст | Функция text() возвращает текст изображения, связанный с заданным ключом текста. Ключи текста изображения можно получить с помощью функции textKeys(). Используйте функцию setText() для изменения текста изображения. |
| Информация низкого уровня | Функция depth() возвращает глубину изображения. Поддерживаемые глубины составляют 1 (монохромный), 8, 16, 24 и 32 бита. Функция bitPlaneCount() указывает, сколько из этих битов используется. Дополнительную информацию см. в разделе Форматы изображений. Функции format(), bytesPerLine() и sizeInBytes() предоставляют информацию низкого уровня о данных, хранящихся в изображении. Функция cacheKey() возвращает число, которое однозначно идентифицирует содержимое этого объекта QImage. |
Обработка пикселей
Функции, используемые для обработки пикселей изображения, зависят от формата изображения. Причина в том, что монохромные и 8-битные изображения основаны на индексах и используют таблицу поиска цветов, в то время как 32-битные изображения хранят значения ARGB напрямую. Более подробную информацию о форматах изображений см. в разделе Форматы изображений.
В случае 32-битного изображения функция setPixel() может использоваться для изменения цвета пикселя в заданных координатах на любой другой цвет, заданный как четвёрка ARGB. Для создания подходящего значения QRgb используйте функцию qRgb() (добавляет значение альфа-компонента по умолчанию к заданным значениям RGB, т. е. создаёт непрозрачный цвет) или qRgba(). Например:
| 32-битное | |
|---|---|
QImage image(3, 3, QImage::Format_RGB32); QRgb value; value = qRgb(189, 149, 39); // 0xffbd9527 image.setPixel(1, 1, value); value = qRgb(122, 163, 39); // 0xff7aa327 image.setPixel(0, 1, value); image.setPixel(1, 0, value); value = qRgb(237, 187, 51); // 0xffedba31 image.setPixel(2, 1, value); |
|
В случае 8-битных и монохромных изображений значение пикселя представляет собой только индекс из таблицы цветов изображения. Поэтому функцию setPixel() можно использовать только для изменения цвета пикселя в заданных координатах на предварительно определённый цвет из таблицы цветов изображения, т. е. она может изменять только индекс пикселя. Для изменения или добавления цвета в таблицу цветов изображения используйте функцию setColor().
Запись в таблице цветов представляет собой четвёрку ARGB, закодированную как значение QRgb. Используйте функции qRgb() и qRgba() для создания подходящего значения QRgb для использования с функцией setColor(). Например:
| 8-битный | |
|---|---|
QImage image(3, 3, QImage::Format_Indexed8); QRgb value; value = qRgb(122, 163, 39); // 0xff7aa327 image.setColor(0, value); value = qRgb(237, 187, 51); // 0xffedba31 image.setColor(1, value); value = qRgb(189, 149, 39); // 0xffbd9527 image.setColor(2, value); image.setPixel(0, 1, 0); image.setPixel(1, 0, 0); image.setPixel(1, 1, 2); image.setPixel(2, 1, 1); |
|
Для изображений с более чем 8 битами на цветовой канал можно использовать методы setPixelColor() и pixelColor() для установки и получения значений с помощью QColor.
QImage также предоставляет функцию scanLine(), которая возвращает указатель на данные пикселей на сканирующей строке с заданным индексом, и функцию bits(), которая возвращает указатель на данные первых пикселей (это эквивалентно scanLine(0)).
Форматы изображений
Каждый пиксель, хранящийся в QImage, представлен целым числом. Размер целого числа зависит от формата. QImage поддерживает несколько форматов изображений, описанных в перечислении Format.
Монохромные изображения хранятся с использованием 1-битовых индексов в таблице цветов с не более чем двумя цветами. Существуют два разных типа монохромных изображений: с порядком битов «big endian» (старший бит впереди) или «little endian» (младший бит впереди).
8-битные изображения хранятся с использованием 8-битовых индексов в таблице цветов, то есть они имеют один байт на пиксель. Таблица цветов — это QList<QRgb>, а typedef QRgb эквивалентен целому без знака, содержащему четвёрку ARGB в формате 0xAARRGGBB.
32-битные изображения не имеют таблицы цветов; вместо этого каждый пиксель содержит значение QRgb. Существует три разных типа 32-битных изображений, хранящих значения RGB (т. е. 0xffRRGGBB), ARGB и значения ARGB с предварительной умножением соответственно. В формате с предварительной умножением красные, зелёные и синие каналы умножаются на альфа-компоненту, делённую на 255.
Формат изображения можно получить с помощью функции format(). Используйте функции convertToFormat() для преобразования изображения в другой формат. Функции allGray() и isGrayscale() показывают, можно ли безопасно преобразовать цветное изображение в оттенок серого.
Преобразования изображений
QImage поддерживает ряд функций для создания нового изображения, являющегося преобразованной версией исходного: Функция createAlphaMask() создаёт и возвращает маску с 1 бит/пиксел из буфера альфа-канала в этом изображении, а функция createHeuristicMask() создаёт и возвращает эвристическую маску с 1 бит/пиксел для этого изображения. Последняя функция работает, выбирая цвет из одного из углов, затем отбрасывая пиксели этого цвета, начиная с всех краёв.
Функция mirrored() возвращает зеркальное отображение изображения в нужном направлении, функция scaled() возвращает копию изображения, масштабированную до прямоугольника с желаемыми размерами, а функция rgbSwapped() строит изображение BGR из изображения RGB.
Функции scaledToWidth() и scaledToHeight() возвращают масштабированные копии изображения.
Функция transformed() возвращает копию изображения, преобразованную заданной матрицей преобразования и режимом преобразования: Внутренне матрица преобразования корректируется для компенсации нежелательного смещения, т. е. transformed() возвращает наименьшее изображение, содержащее все преобразованные точки исходного изображения. Статическая функция trueMatrix() возвращает фактическую матрицу, используемую для преобразования изображения.
Также есть функции для изменения атрибутов изображения непосредственно:
| Функция | Описание |
|---|---|
| setDotsPerMeterX() | Определяет соотношение сторон, задавая количество пикселей, которое помещается горизонтально в один физический метр. |
| setDotsPerMeterY() | Определяет соотношение сторон, задавая количество пикселей, которое помещается вертикально в один физический метр. |
| fill() | Заполняет всё изображение заданным значением пикселя. |
| invertPixels() | Инвертирует все значения пикселей в изображении с использованием заданного значения InvertMode. |
| setColorTable() | Устанавливает таблицу цветов, используемую для преобразования индексов цвета. Только для монохромных и 8-битных форматов. |
| setColorCount() | Изменяет размер таблицы цветов. Только для монохромных и 8-битных форматов. |
См. также QImageReader, QImageWriter, QPixmap, QSvgRenderer, Пример композиции изображений, Пример просмотрщика изображений, Пример приложения «Рисование» и Пример приложения «Пикселизатор».
Документация типов членов
перечисление QImage::Format
В Qt доступны следующие форматы изображений. См. примечания после таблицы.
| Постоянная | Значение | Описание |
|---|---|---|
QImage::Format_Invalid |
0 |
Изображение недействительно. |
QImage::Format_Mono |
1 |
Изображение хранится с использованием 1 бита на пиксель. Байты упаковываются, начиная с старшего бита (MSB). |
QImage::Format_MonoLSB |
2 |
Изображение хранится с использованием 1 бита на пиксель. Байты упаковываются, начиная с младшего бита (LSB). |
QImage::Format_Indexed8 |
3 |
Изображение хранится с использованием 8-битных индексов в палитру цветов. |
QImage::Format_RGB32 |
4 |
Изображение хранится в формате RGB 32 бит (0xffRRGGBB). |
QImage::Format_ARGB32 |
5 |
Изображение хранится в формате ARGB 32 бит (0xAARRGGBB). |
QImage::Format_ARGB32_Premultiplied |
6 |
Изображение хранится в предварительно умноженном формате ARGB 32 бит (0xAARRGGBB), т.е. красные, зелёные и синие каналы умножены на альфа-компонент, делённый на 255. (Если RR, GG или BB имеют более высокое значение, чем альфа-канал, результаты неопределённы.) Некоторые операции (такие как композиция изображений с использованием альфа-смешения) выполняются быстрее с предварительно умноженным ARGB32, чем с обычным ARGB32. |
QImage::Format_RGB16 |
7 |
Изображение хранится в формате RGB 16 бит (5-6-5). |
QImage::Format_ARGB8565_Premultiplied |
8 |
Изображение хранится в предварительно умноженном формате ARGB 24 бит (8-5-6-5). |
QImage::Format_RGB666 |
9 |
Изображение хранится в формате RGB 24 бит (6-6-6). Неиспользуемые старшие биты всегда равны нулю. |
QImage::Format_ARGB6666_Premultiplied |
10 |
Изображение хранится в предварительно умноженном формате ARGB 24 бит (6-6-6-6). |
QImage::Format_RGB555 |
11 |
Изображение хранится в формате RGB 16 бит (5-5-5). Неиспользуемый старший бит всегда равен нулю. |
QImage::Format_ARGB8555_Premultiplied |
12 |
Изображение хранится в предварительно умноженном формате ARGB 24 бит (8-5-5-5). |
QImage::Format_RGB888 |
13 |
Изображение хранится в формате RGB 24 бит (8-8-8). |
QImage::Format_RGB444 |
14 |
Изображение хранится в формате RGB 16 бит (4-4-4). Неиспользуемые биты всегда равны нулю. |
QImage::Format_ARGB4444_Premultiplied |
15 |
Изображение хранится в предварительно умноженном формате ARGB 16 бит (4-4-4-4). |
QImage::Format_RGBX8888 |
16 |
Изображение хранится в формате RGB(x) 32 бит с байтовым порядком (8-8-8-8). Это то же самое, что и Format_RGBA8888, за исключением того, что альфа всегда должна быть равна 255. (добавлен в Qt 5.2) |
QImage::Format_RGBA8888 |
17 |
Изображение хранится в формате RGBA 32 бит с байтовым порядком (8-8-8-8). В отличие от ARGB32, это формат с байтовым порядком, что означает, что 32-битное кодирование различается между архитектурами с big endian и little endian, соответственно (0xRRGGBBAA) и (0xAABBGGRR). Порядок цветов одинаков на любой архитектуре, если читать их как байты 0xRR, 0xGG, 0xBB, 0xAA. (добавлен в Qt 5.2) |
QImage::Format_RGBA8888_Premultiplied |
18 |
Изображение хранится в предварительно умноженном формате RGBA 32 бит с байтовым порядком (8-8-8-8). (добавлен в Qt 5.2) |
QImage::Format_BGR30 |
19 |
Изображение хранится в формате BGR 32 бит (x-10-10-10). (добавлен в Qt 5.4) |
QImage::Format_A2BGR30_Premultiplied |
20 |
Изображение хранится в предварительно умноженном формате ABGR 32 бит (2-10-10-10). (добавлен в Qt 5.4) |
QImage::Format_RGB30 |
21 |
Изображение хранится в формате RGB 32 бит (x-10-10-10). (добавлен в Qt 5.4) |
QImage::Format_A2RGB30_Premultiplied |
22 |
Изображение хранится в предварительно умноженном формате ARGB 32 бит (2-10-10-10). (добавлен в Qt 5.4) |
QImage::Format_Alpha8 |
23 |
Изображение хранится в формате альфа 8 бит. (добавлен в Qt 5.5) |
QImage::Format_Grayscale8 |
24 |
Изображение хранится в формате серого 8 бит. (добавлен в Qt 5.5) |
QImage::Format_Grayscale16 |
28 |
Изображение хранится в формате серого 16 бит. (добавлен в Qt 5.13) |
QImage::Format_RGBX64 |
25 |
Изображение хранится в формате RGB(x) 64 бит с полубайтовым порядком (16-16-16-16). Это то же самое, что и Format_RGBA64, за исключением того, что альфа всегда должна быть 65535. (добавлен в Qt 5.12) |
QImage::Format_RGBA64 |
26 |
Изображение хранится в формате RGBA 64 бит с полубайтовым порядком (16-16-16-16). (добавлен в Qt 5.12) |
QImage::Format_RGBA64_Premultiplied |
27 |
Изображение хранится в предварительно умноженном формате RGBA 64 бит с полубайтовым порядком (16-16-16-16). (добавлен в Qt 5.12) |
QImage::Format_BGR888 |
29 |
Изображение хранится в формате BGR 24 бит. (добавлен в Qt 5.14) |
QImage::Format_RGBX16FPx4 |
30 |
Изображение хранится в формате RGBx 4 16-битных полуслов с плавающей точкой (16FP-16FP-16FP-16FP). Это то же самое, что и Format_RGBA16FPx4, за исключением того, что альфа всегда должна быть равна 1.0. (добавлен в Qt 6.2) |
QImage::Format_RGBA16FPx4 |
31 |
Изображение хранится в формате RGBA 4 16-битных полуслов с плавающей точкой (16FP-16FP-16FP-16FP). (добавлен в Qt 6.2) |
QImage::Format_RGBA16FPx4_Premultiplied |
32 |
Изображение хранится в предварительно умноженном формате RGBA 4 16-битных полуслов с плавающей точкой (16FP-16FP-16FP-16FP). (добавлен в Qt 6.2) |
QImage::Format_RGBX32FPx4 |
33 |
Изображение хранится в формате RGBx 4 32-битных чисел с плавающей точкой (32FP-32FP-32FP-32FP). Это то же самое, что и Format_RGBA32FPx4, за исключением того, что альфа всегда должна быть равна 1.0. (добавлен в Qt 6.2) |
QImage::Format_RGBA32FPx4 |
34 |
Изображение хранится в формате RGBA 4 32-битных чисел с плавающей точкой (32FP-32FP-32FP-32FP). (добавлен в Qt 6.2) |
QImage::Format_RGBA32FPx4_Premultiplied |
35 |
Изображение хранится в предварительно умноженном формате RGBA 4 32-битных чисел с плавающей точкой (32FP-32FP-32FP-32FP). (добавлен в Qt 6.2) |
Примечание: Рисование в QImage с QImage::Format_Indexed8 не поддерживается.
Примечание: Избегайте большинства операций рендеринга напрямую в большинство из этих форматов, используя QPainter. Оптимальный рендеринг достигается для форматов Format_RGB32 и Format_ARGB32_Premultiplied, а затем для Format_RGB16, Format_RGBX8888, Format_RGBA8888_Premultiplied, Format_RGBX64 и Format_RGBA64_Premultiplied.
См. также format() и convertToFormat().
Перечисление QImage::InvertMode
Это перечисление используется для описания того, как следует инвертировать значения пикселей в функции invertPixels().
| Постоянная | Значение | Описание |
|---|---|---|
QImage::InvertRgb |
0 |
Инвертировать только значения RGB и оставить альфа-канал неизменным. |
QImage::InvertRgba |
1 |
Инвертировать все каналы, включая альфа-канал. |
См. также invertPixels().
Документация по функциям-членам
Возвращает QImage, в которой значения красного и синего компонентов всех пикселей поменяны местами, эффективно преобразуя изображение RGB в BGR.
Исходная QImage не изменяется.
См. также rgbSwap() и Преобразования изображений.
QImage QImage::mirrored(bool horizontal = false, bool vertical = true) &&
QImage QImage::mirrored(bool horizontal = false, bool vertical = true) const &
Возвращает зеркальное отображение изображения, отражённое по горизонтали и/или вертикали в зависимости от того, установлены horizontal и vertical в значение true или false.
Обратите внимание, что исходное изображение не изменяется.
См. также mirror() и Преобразования изображений.
[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
Возвращает копию изображения в заданном формате format.
Указанные флаги преобразования изображений flags управляют обработкой данных изображения во время процесса преобразования.
Эта функция была добавлена в Qt 6.0.
См. также convertTo() и Форматы изображений.
QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
Возвращает копию изображения в заданном формате format.
Указанные флаги преобразования изображений flags управляют обработкой данных изображения во время процесса преобразования.
См. также convertTo() и Форматы изображений.
[since 5.2] QImage::QImage(QImage &&other)
Создаёт экземпляр QImage, который ссылается на тот же объект, на который ссылался other.
Эта функция была добавлена в Qt 5.2.
QImage::QImage(const QImage &image)
Создаёт неглубокую копию заданного изображения image.
Подробнее о неглубоких копиях см. документацию по Неявное совместное использование данных.
См. также copy().
QImage::QImage(const QString &fileName, const char *format = nullptr)
Создаёт изображение и пытается загрузить изображение из файла с заданным именем файла fileName.
Загрузчик пытается прочитать изображение с использованием указанного формата format. Если формат format не указан (по умолчанию), он автоматически определяется по расширению файла и заголовку. Подробности см. в {QImageReader::setAutoDetectImageFormat()}{QImageReader}
Если загрузка изображения не удалась, этот объект представляет собой пустое изображение.
Имя файла может ссылаться как на фактический файл на диске, так и на один из встроенных ресурсов приложения. См. обзор Системы ресурсов, чтобы узнать, как встроить изображения и другие файлы ресурсов в исполняемый файл приложения.
См. также isNull() и Чтение и запись файлов изображений.
QImage::QImage(const char *const [] xpm)
Создаёт изображение из заданного изображения xpm.
Убедитесь, что изображение является допустимым изображением XPM. Ошибки игнорируются молча.
Обратите внимание, что можно немного сжать переменную XPM, используя необычное объявление:
static const char * const start_xpm[] = {
"16 15 8 1",
"a c #cec6bd",
// etc.
}; Дополнительный const делает всё определение только для чтения, что немного эффективнее (например, когда код находится в общей библиотеке) и может храниться в ПЗУ вместе с приложением.
QImage::QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
Создаёт изображение с заданной шириной width, высотой height и форматом format, использующее существующий буфер памяти data. Ширина и высота должны быть указаны в пикселях. bytesPerLine определяет количество байтов на строку (шаг).
Буфер должен оставаться корректным на протяжении всего жизненного цикла QImage и всех копий, которые не были изменены или каким-либо образом отвязаны от исходного буфера. Изображение не удаляет буфер при уничтожении. Вы можете указать указатель на функцию cleanupFunction вместе с дополнительным указателем cleanupInfo, которая будет вызвана при уничтожении последней копии.
Если format — формат индексированных цветов, таблица цветов изображения изначально пуста и должна быть достаточно расширена с помощью setColorCount() или setColorTable() перед использованием изображения.
В отличие от аналогичного конструктора QImage, принимающего неконстантный буфер данных, эта версия никогда не изменяет содержимого буфера. Например, вызов QImage::bits() вернёт глубокую копию изображения, а не буфер, переданный в конструктор. Это позволяет эффективно создавать QImage из исходных данных, не рискуя изменить исходные данные.
QImage::QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
Создаёт изображение с заданной шириной width, высотой height и форматом format, использующее существующий буфер памяти data. Ширина и высота должны быть указаны в пикселях. bytesPerLine определяет количество байтов на строку (шаг).
Буфер должен оставаться корректным на протяжении всего жизненного цикла QImage и всех копий, которые не были изменены или каким-либо образом отвязаны от исходного буфера. Изображение не удаляет буфер при уничтожении. Вы можете указать указатель на функцию cleanupFunction вместе с дополнительным указателем cleanupInfo, которая будет вызвана при уничтожении последней копии.
Если format — формат индексированных цветов, таблица цветов изображения изначально пуста и должна быть достаточно расширена с помощью setColorCount() или setColorTable() перед использованием изображения.
QImage::QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
Создаёт изображение с заданной шириной width, высотой height и форматом format, использующее существующий для чтения буфер памяти только для чтения data. Ширина и высота должны быть указаны в пикселях, data должен быть выровнен по 32 бита, и каждая строка данных в изображении также должна быть выровнена по 32 бита.
Буфер должен оставаться корректным на протяжении всего жизненного цикла QImage и всех копий, которые не были изменены или каким-либо образом отвязаны от исходного буфера. Изображение не удаляет буфер при уничтожении. Вы можете указать указатель на функцию cleanupFunction вместе с дополнительным указателем cleanupInfo, которая будет вызвана при уничтожении последней копии.
Если format — формат индексированных цветов, таблица цветов изображения изначально пуста и должна быть достаточно расширена с помощью setColorCount() или setColorTable() перед использованием изображения.
В отличие от аналогичного конструктора QImage, принимающего неконстантный буфер данных, эта версия никогда не изменяет содержимого буфера. Например, вызов QImage::bits() вернёт глубокую копию изображения, а не буфер, переданный в конструктор. Это позволяет эффективно создавать QImage из исходных данных, не рискуя изменить исходные данные.
QImage::QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
Создаёт изображение с заданной шириной width, высотой height и форматом format, использующее существующий буфер памяти data. Ширина и высота должны быть указаны в пикселях, data должен быть выровнен по 32 бита, и каждая строка данных в изображении также должна быть выровнена по 32 бита.
Буфер должен оставаться действительным на протяжении всего жизненного цикла QImage и всех копий, которые не были изменены или иным образом отвязаны от исходного буфера. Изображение не удаляет буфер при уничтожении. Вы можете предоставить указатель на функцию cleanupFunction вместе с дополнительным указателем cleanupInfo, которые будут вызваны при уничтожении последней копии.
Если format — формат индексированных цветов, таблица цветов изображения изначально пуста и должна быть достаточно расширена с помощью setColorCount() или setColorTable() перед использованием изображения.
QImage::QImage(int width, int height, QImage::Format format)
Создаёт изображение с заданной шириной, высотой и форматом.
Будет возвращено изображение null, если память не может быть выделена.
Предупреждение: Это создаст QImage с неинициализированными данными. Вызовите fill(), чтобы заполнить изображение соответствующим значением пикселя перед рисованием на нём с помощью QPainter.
QImage::QImage(const QSize &size, QImage::Format format)
Создаёт изображение с заданным размером и форматом.
Возвращается изображение null, если память не может быть выделена.
Предупреждение: Это создаст QImage с неинициализированными данными. Вызовите fill(), чтобы заполнить изображение соответствующим значением пикселя перед рисованием на нём с помощью QPainter.
QImage::QImage()
Создаёт изображение null.
См. также isNull().
[since 5.2] QImage &QImage::operator=(QImage &&other)
Перемещает присвоение other текущему экземпляру QImage.
Эта функция была введена в Qt 5.2.
QImage &QImage::operator=(const QImage &image)
Присваивает неглубокую копию заданного image текущему изображению и возвращает ссылку на это изображение.
Для получения более подробной информации о неглубоких копиях см. документацию по Неявное совместное использование данных.
[virtual] QImage::~QImage()
Уничтожает изображение и производит очистку.
bool QImage::allGray() const
Возвращает true, если все цвета в изображении являются оттенками серого (т. е. их компоненты красного, зеленого и синего равны); в противном случае false.
Обратите внимание, что эта функция медленная для изображений без таблицы цветов.
См. также isGrayscale().
[since 5.14] void QImage::applyColorTransform(const QColorTransform &transform)
Применяет преобразование цвета transform ко всем пикселям изображения.
Эта функция была введена в Qt 5.14.
int QImage::bitPlaneCount() const
Возвращает количество плоскостей битов в изображении.
Количество плоскостей битов — это количество битов информации о цвете и прозрачности для каждого пикселя. Это отличается от (т. е. меньше) глубины, когда формат изображения содержит неиспользуемые биты.
См. также depth(), format() и Форматы изображений.
uchar *QImage::bits()
Возвращает указатель на первые данные пикселей. Это эквивалентно scanLine(0).
Обратите внимание, что QImage использует неявное совместное использование данных. Эта функция выполняет глубокую копию общих данных пикселей, тем самым гарантируя, что этот QImage является единственным, использующим текущее возвращаемое значение.
См. также scanLine(), sizeInBytes() и constBits().
const uchar *QImage::bits() const
Это перегруженная функция.
Обратите внимание, что QImage использует неявное совместное использование данных, но эта функция не выполняет глубокую копию общих данных пикселей, так как возвращаемые данные являются константой.
qsizetype QImage::bytesPerLine() const
Возвращает количество байтов на строку сканирования изображения.
Это эквивалентно sizeInBytes() / height(), если height() не равно нулю.
См. также scanLine().
qint64 QImage::cacheKey() const
Возвращает число, идентифицирующее содержимое этого объекта QImage. Различные объекты QImage могут иметь одинаковый ключ только в том случае, если они ссылаются на одно и то же содержимое.
Ключ будет изменяться при изменении изображения.
QRgb QImage::color(int i) const
Возвращает цвет в таблице цветов по индексу i. Первый цвет имеет индекс 0.
Цвета в таблице цветов изображения задаются как четвёрки ARGB (QRgb). Используйте функции qAlpha(), qRed(), qGreen() и qBlue(), чтобы получить компоненты значения цвета.
См. также setColor(), pixelIndex() и Обработка пикселей.
int QImage::colorCount() const
Возвращает размер таблицы цветов для изображения.
Обратите внимание, что colorCount() возвращает 0 для 32-битных изображений, так как эти изображения не используют таблицы цветов, а вместо этого кодируют значения пикселей как четвёрки ARGB.
См. также setColorCount() и Сведения об изображении.
[since 5.14] QColorSpace QImage::colorSpace() const
Возвращает цветовое пространство изображения, если цветовое пространство определено.
Эта функция была введена в Qt 5.14.
См. также setColorSpace().
QList<QRgb> QImage::colorTable() const
Возвращает список цветов, содержащихся в таблице цветов изображения, или пустой список, если у изображения нет таблицы цветов
См. также setColorTable(), colorCount() и color().
const uchar *QImage::constBits() const
Возвращает указатель на первые данные пикселей.
Обратите внимание, что QImage использует неявное совместное использование данных, но эта функция не выполняет глубокую копию общих данных пикселей, так как возвращаемые данные являются константой.
См. также bits() и constScanLine().
const uchar *QImage::constScanLine(int i) const
Возвращает указатель на данные пикселей на строке сканирования с индексом i. Первая строка сканирования имеет индекс 0.
Данные строки сканирования выравниваются как минимум по 32 бита. Для 64-битных форматов они следуют зародному выравниванию 64-битных целых чисел (64 бита для большинства платформ, но заметно 32 бита на i386).
Обратите внимание, что QImage использует неявное совместное использование данных, но эта функция не выполняет глубокую копию общих данных пикселей, так как возвращаемые данные являются константой.
См. также scanLine() и constBits().
[since 5.13] void QImage::convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
Преобразует изображение в заданный формат на месте, отсоединив его при необходимости.
Указанные флаги преобразования изображений управляют тем, как данные изображения обрабатываются во время процесса преобразования.
Эта функция была введена в Qt 5.13.
См. также convertedTo().
[since 5.14] void QImage::convertToColorSpace(const QColorSpace &colorSpace)
Преобразует изображение в colorSpace.
Если у изображения нет допустимого цветового пространства, метод ничего не делает.
Эта функция была введена в Qt 5.14.
См. также convertedToColorSpace() и setColorSpace().
QImage QImage::convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const
Это перегруженная функция.
Возвращает копию изображения, преобразованного в заданный формат, используя указанную colorTable.
Преобразование из форматов RGB в индексированные форматы — это медленная операция и будет использовать прямой подход ближайшего цвета без применения дithering.
[since 5.14] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace) const
Возвращает изображение, преобразованное в цветовое пространство colorSpace.
Если у изображения нет действительного цветового пространства, возвращается нулевое QImage.
Данная функция была введена в Qt 5.14.
См. также convertToColorSpace().
QImage QImage::copy(const QRect &rectangle = QRect()) const
Возвращает подобласть изображения в виде нового изображения.
Возвращаемое изображение копируется из позиции (rectangle.x(), rectangle.y()) в этом изображении и всегда будет иметь размер заданного прямоугольника rectangle.
В областях за пределами этого изображения пиксели устанавливаются в 0. Для 32-битных RGB-изображений это означает черный цвет; для 32-битных ARGB-изображений — прозрачный черный; для 8-битных изображений — цвет с индексом 0 в таблице цветов, который может быть любым; для 1-битных изображений — Qt::color0.
Если заданный прямоугольник rectangle — пустой прямоугольник, копируется всё изображение.
См. также QImage().
QImage QImage::copy(int x, int y, int width, int height) const
Это перегруженная функция.
Возвращаемое изображение копируется из позиции (x, y) в этом изображении и всегда будет иметь заданную width и height. В областях за пределами этого изображения пиксели устанавливаются в 0.
QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const
Создаёт и возвращает маску 1 бита на пиксель из буфера альфа-канала в этом изображении. Возвращает нулевое изображение, если формат изображения — QImage::Format_RGB32.
Аргумент flags — битовое ИЛИ флагов Qt::ImageConversionFlags и управляет процессом преобразования. Передача 0 для флагов устанавливает все значения по умолчанию.
Возвращаемое изображение имеет порядок бит в формате little-endian (т.е. формат изображения — QImage::Format_MonoLSB), который можно преобразовать в big-endian (QImage::Format_Mono) с помощью функции convertToFormat().
См. также createHeuristicMask() и Преобразования изображений.
QImage QImage::createHeuristicMask(bool clipTight = true) const
Создаёт и возвращает эвристическую маску 1 бита на пиксель для этого изображения.
Функция работает, выбирая цвет из одного из углов, затем удаляя пиксели этого цвета, начиная с краёв. Четыре угла голосуют за то, какой цвет следует замаскировать. В случае ничьей (это, как правило, означает, что эта функция не применима к изображению), результат произвольный.
Возвращаемое изображение имеет порядок бит в формате little-endian (т.е. формат изображения — QImage::Format_MonoLSB), который можно преобразовать в big-endian (QImage::Format_Mono) с помощью функции convertToFormat().
Если clipTight равно true (по умолчанию), маска имеет минимальный размер, достаточный для покрытия пикселей; в противном случае, маска больше, чем пиксели данных.
Обратите внимание, что эта функция игнорирует буфер альфа-канала.
См. также createAlphaMask() и Преобразования изображений.
QImage QImage::createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const
Создаёт и возвращает маску для этого изображения на основе заданного значения цвета color. Если mode — MaskInColor (значение по умолчанию), все пиксели, совпадающие с color, будут непрозрачными пикселями в маске. Если mode — MaskOutColor, все пиксели, совпадающие с заданным цветом, будут прозрачными.
См. также createAlphaMask() и createHeuristicMask().
int QImage::depth() const
Возвращает глубину изображения.
Глубина изображения — это количество битов, используемых для хранения одного пикселя, также называемое битами на пиксель (bpp).
Поддерживаемые глубины: 1, 8, 16, 24, 32 и 64.
См. также bitPlaneCount(), convertToFormat(), Форматы изображений и Информация об изображении.
QSizeF QImage::deviceIndependentSize() const
Возвращает размер изображения в независимых от устройства пикселях.
Это значение следует использовать при использовании размера изображения в расчётах размеров пользовательского интерфейса.
Возвращаемое значение эквивалентно pixmap.size() / pixmap.devicePixelRatio(),
qreal QImage::devicePixelRatio() const
Возвращает коэффициент масштабирования устройства для изображения. Это отношение между пикселями устройства и независимыми от устройства пикселями.
Используйте эту функцию при расчёте геометрии макета на основе размера изображения: QSize layoutSize = image.size() / image.devicePixelRatio()
Значение по умолчанию — 1.0.
См. также setDevicePixelRatio() и QImageReader.
int QImage::dotsPerMeterX() const
Возвращает количество пикселей, помещающихся горизонтально на один физический метр. Вместе с dotsPerMeterY() это число определяет предполагаемый масштаб и соотношение сторон изображения.
См. также setDotsPerMeterX() и Информация об изображении.
int QImage::dotsPerMeterY() const
Возвращает количество пикселей, помещающихся вертикально на один физический метр. Вместе с dotsPerMeterX() это число определяет предполагаемый масштаб и соотношение сторон изображения.
См. также setDotsPerMeterY() и Информация об изображении.
void QImage::fill(uint pixelValue)
Заполняет всё изображение заданным значением пикселя pixelValue.
Если глубина этого изображения равна 1, используется только младший бит. Если вы вызываете fill(0), fill(2) и т. д., изображение заполняется нулями. Если вы вызываете fill(1), fill(3) и т. д., изображение заполняется единицами. Если глубина равна 8, используются 8 младших битов, а если глубина равна 16, используются 16 младших битов.
Если глубина изображения выше 32 бит, результат неопределён.
Примечание: Соответствующего метода-получателя нет, хотя QImage::pixelIndex() вернёт то же значение для индексированных форматов, а QImage::pixel() — для форматов RGB32, ARGB32 и ARGB32PM.
См. также depth() и Преобразования изображений.
void QImage::fill(const QColor &color)
Это перегруженная функция.
Заполняет всё изображение заданным цветом color.
Если глубина изображения равна 1, изображение заполнится 1, если color равен Qt::color1; в противном случае оно будет заполнено 0.
Если глубина изображения равна 8, изображение заполнится индексом, соответствующим color в таблице цветов, если она присутствует; в противном случае оно заполнится 0.
void QImage::fill(Qt::GlobalColor color)
Это перегруженная функция.
Заполняет изображение заданным цветом, описанным как стандартный глобальный цвет.
QImage::Format QImage::format() const
Возвращает формат изображения.
См. также Форматы изображений.
[static, since 6.2] QImage QImage::fromData(QByteArrayView data, const char *format = nullptr)
Создаёт изображение из заданных данных QByteArrayView data. Загрузчик пытается прочитать изображение с использованием указанного формата format. Если format не указан (что является значением по умолчанию), загрузчик анализирует данные для определения формата файла.
Если format указан, он должен быть одним из значений, возвращаемых QImageReader::supportedImageFormats().
Если загрузка изображения завершается неудачно, возвращается нулевое изображение.
Данная функция была введена в Qt 6.2.
См. также load(), save() и Чтение и запись файлов изображений.
[static] QImage QImage::fromData(const uchar *data, int size, const char *format = nullptr)
Это перегруженная функция.
Создаёт QImage из первых size байтов заданных бинарных данных data.
[static] QImage QImage::fromData(const QByteArray &data, const char *format = nullptr)
Это перегруженный метод.
Создаёт QImage из заданного QByteArray data.
[static, since 6.0] QImage QImage::fromHBITMAP(HBITMAP hbitmap)
Возвращает QImage, эквивалентную заданному hbitmap.
HBITMAP не хранит информацию об альфа-канале.
В стандартном случае, альфа-канал игнорируется, и создаётся полностью непрозрачный образ (обычно формата QImage::Format_RGB32).
Однако, есть случаи, когда альфа-канал используется, например, для значков приложения или значков системного трея. В таком случае, необходимо вызвать метод reinterpretAsFormat(QImage::Format_ARGB32) для возвращаемого изображения, чтобы гарантировать правильность формата.
Этот метод был введён в Qt 6.0.
См. также toHBITMAP() и reinterpretAsFormat().
[static, since 6.0] QImage QImage::fromHICON(HICON icon)
Возвращает QImage, эквивалентную заданному icon.
Этот метод был введён в Qt 6.0.
См. также toHICON().
bool QImage::hasAlphaChannel() const
Возвращает true если формат изображения поддерживает альфа-канал, иначе возвращает false.
См. также Информация об изображении.
int QImage::height() const
Возвращает высоту изображения.
См. также Информация об изображении.
void QImage::invertPixels(QImage::InvertMode mode = InvertRgb)
Инвертирует все пиксельные значения в изображении.
Заданный режим инверсии mode имеет смысл только для изображений глубиной 32. По умолчанию mode равен InvertRgb, который не изменяет альфа-канал. Если mode равен InvertRgba, то инвертируются и биты альфа-канала.
Инвертирование 8-битного изображения означает замену всех пикселей с индексом цвета i на пиксель с индексом цвета 255 минус i. То же самое относится к 1-битному изображению. Обратите внимание, что цветовая таблица не изменяется.
Если изображение имеет предварительно умноженный альфа-канал, то изображение сначала преобразуется в формат изображения без предварительного умножения для инвертирования, а затем возвращается обратно.
См. также Преобразования изображений.
bool QImage::isGrayscale() const
Для 32-битных изображений этот метод эквивалентен методу allGray().
Для изображений с индексами цвета, этот метод возвращает true если цвет(i) равен QRgb(i, i, i) для всех индексов цветовой таблицы; в противном случае возвращает false.
См. также allGray() и Форматы изображений.
bool QImage::isNull() const
Возвращает true если это пустое изображение, иначе возвращает false.
Пустое изображение имеет все параметры, установленные в ноль, и не содержит выделенных данных.
bool QImage::load(const QString &fileName, const char *format = nullptr)
Загружает изображение из файла с заданным именем fileName. Возвращает true если изображение было успешно загружено; иначе делает изображение недействительным и возвращает false.
Загрузчик пытается прочитать изображение с указанным format, например PNG или JPG. Если format не указан (по умолчанию), он автоматически определяется по расширению файла и заголовку. Для получения подробностей см. QImageReader::setAutoDetectImageFormat().
Имя файла может ссылаться на фактический файл на диске или на один из встроенных ресурсов приложения. См. обзор системы ресурсов для получения подробностей о том, как встраивать изображения и другие файлы ресурсов в исполняемый файл приложения.
См. также Чтение и запись файлов изображений.
bool QImage::load(QIODevice *device, const char *format)
Это перегруженный метод.
Этот метод считывает QImage из заданного device. Это, например, можно использовать для загрузки изображения непосредственно в QByteArray.
[since 6.2] bool QImage::loadFromData(QByteArrayView data, const char *format = nullptr)
Загружает изображение из заданного QByteArrayView data. Возвращает true если изображение было успешно загружено; иначе делает изображение недействительным и возвращает false.
Загрузчик пытается прочитать изображение с указанным format, например PNG или JPG. Если format не указан (по умолчанию), загрузчик анализирует файл для определения формата.
Этот метод был введён в Qt 6.2.
См. также Чтение и запись файлов изображений.
bool QImage::loadFromData(const uchar *data, int len, const char *format = nullptr)
Это перегруженный метод.
Загружает изображение из первых len байтов заданных двоичных данных data.
bool QImage::loadFromData(const QByteArray &data, const char *format = nullptr)
Это перегруженный метод.
Загружает изображение из заданного QByteArray data.
[since 6.0] void QImage::mirror(bool horizontal = false, bool vertical = true)
Отражает изображение по горизонтали и/или вертикали в зависимости от того, установлены ли horizontal и vertical в значение true или false.
Этот метод был введён в Qt 6.0.
См. также mirrored() и Преобразования изображений.
QPoint QImage::offset() const
Возвращает количество пикселей, на которое изображение смещено при позиционировании относительно других изображений.
См. также setOffset() и Информация об изображении.
QRgb QImage::pixel(const QPoint &position) const
Возвращает цвет пикселя в заданной position.
Если position некорректна, результаты не определены.
Предупреждение: Этот метод дорогостоящий при использовании для массовых манипуляций с пикселями. Используйте constBits() или constScanLine() при чтении большого количества пикселей.
См. также setPixel(), valid(), constBits(), constScanLine(), и Манипуляции с пикселями.
QRgb QImage::pixel(int x, int y) const
Это перегруженный метод.
Возвращает цвет пикселя в координатах (x, y).
[since 5.6] QColor QImage::pixelColor(const QPoint &position) const
Возвращает цвет пикселя в заданной position как QColor.
Если position некорректна, возвращается недействительный QColor.
Предупреждение: Этот метод дорогостоящий при использовании для массовых манипуляций с пикселями. Используйте constBits() или constScanLine() при чтении большого количества пикселей.
Этот метод был введён в Qt 5.6.
См. также setPixelColor(), setPixel(), valid(), constBits(), constScanLine(), и Манипуляции с пикселями.
[since 5.6] QColor QImage::pixelColor(int x, int y) const
Это перегруженный метод.
Возвращает цвет пикселя в координатах (x, y) как QColor.
Этот метод был введён в Qt 5.6.
QPixelFormat QImage::pixelFormat() const
Возвращает QImage::Format как QPixelFormat
int QImage::pixelIndex(const QPoint &position) const
Возвращает индекс пикселя в заданной position.
Если position недействителен или изображение не является палитровым изображением (depth() > 8), результаты неопределённы.
См. также valid(), depth() и Обработка пикселей.
int QImage::pixelIndex(int x, int y) const
Это перегруженный метод.
Возвращает индекс пикселя в координатах (x, y).
QRect QImage::rect() const
Возвращает охватывающий прямоугольник (0, 0, width(), height()) изображения.
См. также Информация об изображении.
[since 5.9] bool QImage::reinterpretAsFormat(QImage::Format format)
Изменяет формат изображения на format без изменения данных. Работает только между форматами с одинаковой глубиной.
Возвращает true в случае успеха.
Этот метод может быть использован для изменения изображений с альфа-каналом на соответствующие непрозрачные форматы, если известно, что данные содержат только непрозрачные значения, или для изменения формата заданного буфера изображения перед перезаписью его новыми данными.
Предупреждение: Метод не проверяет, являются ли данные изображения валидными в новом формате, и по-прежнему вернёт true если глубины совместимы. Операции над изображением с невалидными данными неопределены.
Предупреждение: Если изображение не отделено, это приведёт к копированию данных.
Этот метод был добавлен в Qt 5.9.
См. также hasAlphaChannel() и convertToFormat().
[since 6.0] void QImage::rgbSwap()
Меняет местами значения красного и синего компонентов всех пикселей, эффективно преобразуя RGB-изображение в BGR-изображение.
Этот метод был добавлен в Qt 6.0.
См. также rgbSwapped() и Преобразования изображений.
bool QImage::save(const QString &fileName, const char *format = nullptr, int quality = -1) const
Сохраняет изображение в файл с заданным именем fileName, используя указанный формат изображения format и коэффициент качества quality. Если format nullptr, QImage попытается определить формат по расширению файла fileName.
Значение quality должно находиться в диапазоне от 0 до 100 или быть равно -1. Установите значение 0 для получения компактных сжатых файлов, 100 для больших несжатых файлов и -1 (по умолчанию) для использования стандартных настроек.
Возвращает true если изображение было успешно сохранено; в противном случае возвращает false.
См. также Чтение и запись файлов изображений.
bool QImage::save(QIODevice *device, const char *format = nullptr, int quality = -1) const
Это перегруженный метод.
Этот метод записывает QImage в указанный device.
Например, это можно использовать для сохранения изображения непосредственно в QByteArray:
QImage image; QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); image.save(&buffer, "PNG"); // writes image into ba in PNG format
QImage QImage::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
Возвращает копию изображения, масштабированного до прямоугольника, заданного size, в соответствии с заданным aspectRatioMode и transformMode.
- Если aspectRatioMode равен Qt::IgnoreAspectRatio, изображение масштабируется до size.
- Если aspectRatioMode равен Qt::KeepAspectRatio, изображение масштабируется до наибольшего возможного прямоугольника внутри size, сохраняя пропорции.
- Если aspectRatioMode равен Qt::KeepAspectRatioByExpanding, изображение масштабируется до наименьшего возможного прямоугольника вне size, сохраняя пропорции.
Если заданный size пустой, этот метод возвращает пустое изображение.
См. также isNull() и Преобразования изображений.
QImage QImage::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
Это перегруженный метод.
Возвращает копию изображения, масштабированного до прямоугольника с заданной width и height в соответствии с заданным aspectRatioMode и transformMode.
Если width или height равны нулю или отрицательны, этот метод возвращает пустое изображение.
QImage QImage::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до заданной height с использованием указанного режима преобразования mode.
Этот метод автоматически вычисляет ширину изображения, чтобы сохранить его соотношение сторон.
Если заданная height равна 0 или отрицательна, возвращается пустое изображение.
См. также Преобразования изображений.
QImage QImage::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до заданной width с использованием указанного режима преобразования mode.
Этот метод автоматически вычисляет высоту изображения, чтобы сохранить его соотношение сторон.
Если заданная width равна 0 или отрицательна, возвращается пустое изображение.
См. также Преобразования изображений.
uchar *QImage::scanLine(int i)
Возвращает указатель на данные пикселей на строке сканирования с индексом i. Первая строка сканирования имеет индекс 0.
Данные строки сканирования выровнены по крайней мере на 32 бита. Для 64-битных форматов они следуют родному выравниванию 64-битных целых чисел (64 бита для большинства платформ, но, в частности, 32 бита на i386).
Например, чтобы удалить зелёный компонент каждого пикселя в изображении:
for (int y = 0; y < image.height(); ++y) {
QRgb *line = reinterpret_cast<QRgb*>(image.scanLine(y));
for (int x = 0; x < image.width(); ++x) {
QRgb &rgb = line[x];
rgb = qRgba(qRed(rgb), qGreen(0), qBlue(rgb), qAlpha(rgb));
}
} Предупреждение: Если вы обращаетесь к данным изображения с разрешением 32 бита на пиксель, преобразуйте возвращаемый указатель к QRgb* (QRgb имеет размер 32 бита) и используйте его для чтения/записи значения пикселя. Вы не можете использовать указатель uchar* напрямую, потому что формат пикселя зависит от порядка байтов на целевой платформе. Используйте qRed(), qGreen(), qBlue() и qAlpha() для доступа к пикселям.
См. также bytesPerLine(), bits(), Обработка пикселей и constScanLine().
const uchar *QImage::scanLine(int i) const
Это перегруженный метод.
void QImage::setAlphaChannel(const QImage &alphaChannel)
Устанавливает альфа-канал этого изображения в заданный alphaChannel.
Если alphaChannel представляет собой 8-битное альфа-изображение, значения альфа используются непосредственно. В противном случае alphaChannel преобразуется в 8-битное градацию серого, и используется интенсивность значений пикселей.
Если изображение уже имеет альфа-канал, существующий альфа-канал умножается на новый. Если изображение не имеет альфа-канала, оно будет преобразовано в формат, который его содержит.
Операция аналогична рисованию alphaChannel как альфа-изображения поверх этого изображения с использованием QPainter::CompositionMode_DestinationIn.
См. также hasAlphaChannel(), Преобразования изображений и Форматы изображений.
void QImage::setColor(int index, QRgb colorValue)
Устанавливает цвет по заданному index в таблице цветов в заданное colorValue. Значение цвета представляет собой четвёрку ARGB.
Если index выходит за пределы текущего размера таблицы цветов, она расширяется с помощью setColorCount().
См. также color(), colorCount(), setColorTable() и Обработка пикселей.
void QImage::setColorCount(int colorCount)
Изменяет размер таблицы цветов на colorCount элементов.
Если таблица цветов расширяется, все дополнительные цвета будут прозрачными (т.е. qRgba(0, 0, 0, 0)).
При использовании изображения таблица цветов должна быть достаточно большой, чтобы содержать записи для всех значений пикселей/индексов, присутствующих в изображении; в противном случае результаты будут неопределёнными.
END_OF_DOCUMENT_MARKERСм. также colorCount(), colorTable(), setColor() и Преобразования изображений.
[since 5.14] void QImage::setColorSpace(const QColorSpace &colorSpace)
Устанавливает цветовое пространство изображения на colorSpace без выполнения каких-либо преобразований данных изображения.
Эта функция была добавлена в Qt 5.14.
См. также colorSpace().
void QImage::setColorTable(const QList<QRgb> &colors)
Устанавливает таблицу цветов, используемую для перевода цветовых индексов в значения QRgb, на указанные значения colors.
При использовании изображения таблица цветов должна быть достаточно большой, чтобы содержать записи для всех значений пикселей/индексов, присутствующих в изображении, в противном случае результаты будут неопределёнными.
См. также colorTable(), setColor() и Преобразования изображений.
void QImage::setDevicePixelRatio(qreal scaleFactor)
Устанавливает коэффициент пикселей устройства для изображения. Это отношение между пикселями изображения и независимыми от устройства пикселями.
Значение по умолчанию для scaleFactor равно 1.0. Установка другого значения имеет два эффекта:
QPainters, открытые на изображении, будут масштабироваться. Например, рисование на изображении 200x200 с коэффициентом 2.0 приведёт к эффективным (независимым от устройства) границам рисования 100x100.
В Qt пути кода, вычисляющие геометрию макета на основе размера изображения, учтут этот коэффициент: QSize layoutSize = image.size() / image.devicePixelRatio() Конечный эффект заключается в том, что изображение отображается как изображение с высокой плотностью пикселей, а не как большое изображение (см. Рисование версий с высоким разрешением для растровых изображений и изображений).
См. также devicePixelRatio() и deviceIndependentSize().
void QImage::setDotsPerMeterX(int x)
Устанавливает количество пикселей, умещающихся по горизонтали в физическом метре, на значение x.
Вместе с dotsPerMeterY() это число определяет предполагаемый масштаб и соотношение сторон изображения, а также определяет масштаб, на котором QPainter будет рисовать графические объекты на изображении. Оно не изменяет масштаб или соотношение сторон изображения при его рендеринге на других устройствах рисования.
См. также dotsPerMeterX() и Информация об изображении.
void QImage::setDotsPerMeterY(int y)
Устанавливает количество пикселей, умещающихся по вертикали в физическом метре, на значение y.
Вместе с dotsPerMeterX() это число определяет предполагаемый масштаб и соотношение сторон изображения, а также определяет масштаб, на котором QPainter будет рисовать графические объекты на изображении. Оно не изменяет масштаб или соотношение сторон изображения при его рендеринге на других устройствах рисования.
См. также dotsPerMeterY() и Информация об изображении.
void QImage::setOffset(const QPoint &offset)
Устанавливает количество пикселей, на которое изображение предназначено для смещения при позиционировании относительно других изображений, на offset.
См. также offset() и Информация об изображении.
void QImage::setPixel(const QPoint &position, uint index_or_rgb)
Устанавливает индекс пикселя или цвет в заданной position на index_or_rgb.
Если формат изображения монохромный или палитровый, заданное значение index_or_rgb должно быть индексом в таблице цветов изображения; в противном случае параметр должен быть значением QRgb.
Если position не является допустимой парой координат в изображении, или если index_or_rgb >= colorCount() в случае монохромных и палитровых изображений, результат неопределён.
Предупреждение: Эта функция является дорогостоящей из-за вызова внутренней функции detach(); если производительность имеет значение, рекомендуется использовать scanLine() или bits() для прямого доступа к данным пикселей.
См. также pixel() и Обработка пикселей.
void QImage::setPixel(int x, int y, uint index_or_rgb)
Это перегруженная функция.
Устанавливает индекс пикселя или цвет в (x, y) на index_or_rgb.
[since 5.6] void QImage::setPixelColor(const QPoint &position, const QColor &color)
Устанавливает цвет в заданной position на color.
Если position не является допустимой парой координат в изображении, или формат изображения монохромный или палитровый, результат неопределён.
Предупреждение: Эта функция является дорогостоящей из-за вызова внутренней функции detach(); если производительность имеет значение, рекомендуется использовать scanLine() или bits() для прямого доступа к данным пикселей.
Эта функция была добавлена в Qt 5.6.
См. также pixelColor(), pixel(), bits(), scanLine() и Обработка пикселей.
[since 5.6] void QImage::setPixelColor(int x, int y, const QColor &color)
Это перегруженная функция.
Устанавливает цвет пикселя в (x, y) на color.
Эта функция была добавлена в Qt 5.6.
void QImage::setText(const QString &key, const QString &text)
Устанавливает текст изображения на заданный text и связывает его с заданным key.
Если нужно сохранить только один блок текста (например, «комментарий» или просто описание), можно либо передать пустой ключ, либо использовать универсальный ключ, такой как «Описание».
Текст изображения встраивается в данные изображения при вызове save() или QImageWriter::write().
Не все форматы изображений поддерживают встроенный текст. Чтобы узнать, поддерживает ли конкретное изображение или формат встроенный текст, используйте QImageWriter::supportsOption(). Пример:
QImageWriter writer;
writer.setFormat("png");
if (writer.supportsOption(QImageIOHandler::Description))
qDebug() << "Png supports embedded text"; Используйте QImageWriter::supportedImageFormats(), чтобы узнать, какие форматы изображений доступны.
См. также text() и textKeys().
QSize QImage::size() const
Возвращает размер изображения, то есть его width() и height().
См. также Информация об изображении и deviceIndependentSize().
[since 5.10] qsizetype QImage::sizeInBytes() const
Возвращает размер данных изображения в байтах.
Эта функция была добавлена в Qt 5.10.
См. также bytesPerLine(), bits() и Информация об изображении.
void QImage::swap(QImage &other)
Меняет местами изображение other с этим изображением. Эта операция очень быстрая и никогда не терпит неудачу.
QString QImage::text(const QString &key = QString()) const
Возвращает текст изображения, связанный с заданным key. Если указанный key является пустой строкой, возвращается весь текст изображения, при этом каждая пара ключ-текст отделяется новой строкой.
См. также setText() и textKeys().
QStringList QImage::textKeys() const
Возвращает ключи текста для этого изображения.
Вы можете использовать эти ключи с text(), чтобы перечислить текст изображения для определенного ключа.
См. также text().
CGImageRef QImage::toCGImage() const
Создаёт CGImage эквивалент этого QImage.
Возвращает CGImageRef дескриптор.
Возвращённый CGImageRef участвует в неявном совместном использовании QImage и содержит ссылку на данные QImage. CGImage является неизменяемым и никогда не отсоединит QImage. Запись в QImage будет отсоединяться как обычно.
Эта функция быстрая и не копирует и не преобразует данные изображения.
Поддерживаются следующие форматы изображений, которые будут отображаться в соответствующем собственном типе изображения:
| Qt | CoreGraphics |
|---|---|
| Format_ARGB32 | kCGImageAlphaFirst | kCGBitmapByteOrder32Host |
| Format_RGB32 | kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host |
| Format_RGBA8888_Premultiplied | kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big |
| Format_RGBA8888 | kCGImageAlphaLast | kCGBitmapByteOrder32Big |
| Format_RGBX8888 | kCGImageAlphaNoneSkipLast | kCGBitmapByteOrder32Big |
| Format_ARGB32_Premultiplied | kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host |
Другие форматы не поддерживаются; эта функция возвращает нулевой CGImageRef в таких случаях. Пользователи этой функции могут предварительно преобразовать QImage в поддерживаемый формат, например, Format_ARGB32_Premultiplied.
Цветовое пространство CGImageRef установлено в цветовое пространство sRGB.
[since 6.0] HBITMAP QImage::toHBITMAP() const
Создаёт HBITMAP эквивалент QImage.
Возвращает HBITMAP дескриптор.
Ответственность за освобождение HBITMAP данных после использования лежит на вызывающей стороне.
Для использования со стандартными вызовами GDI, такими как BitBlt(), изображение должно иметь формат QImage::Format_RGB32.
При использовании полученного HBITMAP для функции GDI AlphaBlend(), изображение должно иметь формат QImage::Format_ARGB32_Premultiplied (используйте convertToFormat()).
При использовании полученного HBITMAP в качестве значка приложения или значка системного трея, изображение должно иметь формат QImage::Format_ARGB32.
Эта функция была добавлена в Qt 6.0.
См. также fromHBITMAP() и convertToFormat().
[since 6.0] HICON QImage::toHICON(const QImage &mask = {}) const
Создаёт HICON эквивалент QPixmap, применяя маску mask.
Если mask не нулевая, она должна иметь формат QImage::Format_Mono. Возвращает HICON дескриптор.
Ответственность за освобождение HICON данных после использования лежит на вызывающей стороне.
Эта функция была добавлена в Qt 6.0.
См. также fromHICON().
[static] QImage::Format QImage::toImageFormat(QPixelFormat format)
Преобразует format в QImage::Format
[static] QPixelFormat QImage::toPixelFormat(QImage::Format format)
Преобразует format в QPixelFormat
QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает копию изображения, преобразованного с помощью заданной трансформации matrix и режима трансформации mode.
Возвращаемое изображение, как правило, будет иметь тот же {Форматы изображений}{формат}, что и исходное изображение. Однако сложная трансформация может привести к изображению, где не все пиксели покрыты преобразованными пикселями исходного изображения. В таких случаях эти фоновые пиксели будут назначены прозрачному значению цвета, а преобразованному изображению будет присвоен формат с альфа-каналом, даже если исходное изображение этого не имело.
Матрица трансформации matrix внутренне корректируется для компенсации нежелательного смещения; т.е. получаемое изображение — это наименьшее изображение, содержащее все преобразованные точки исходного изображения. Используйте функцию trueMatrix(), чтобы получить фактическую матрицу, используемую для преобразования изображения.
В отличие от других перегрузок, эту функцию можно использовать для выполнения перспективных преобразований изображений.
См. также trueMatrix() и Преобразования изображений.
[static] QTransform QImage::trueMatrix(const QTransform &matrix, int width, int height)
Возвращает фактическую матрицу, используемую для преобразования изображения с заданной шириной width, высотой height и матрицей matrix.
При преобразовании изображения с помощью функции transformed(), матрица преобразования внутренне корректируется для компенсации нежелательного смещения, т.е. transformed() возвращает наименьшее изображение, содержащее все преобразованные точки исходного изображения. Эта функция возвращает изменённую матрицу, которая правильно отображает точки из исходного изображения в новое изображение.
В отличие от других перегрузок, эта функция создаёт матрицы преобразования, которые могут быть использованы для выполнения перспективных преобразований изображений.
См. также transformed() и Преобразования изображений.
bool QImage::valid(const QPoint &pos) const
Возвращает true , если pos — это допустимая пара координат внутри изображения; в противном случае возвращает false.
См. также rect() и QRect::contains().
bool QImage::valid(int x, int y) const
Это перегруженная функция.
Возвращает true , если QPoint(x, y) — это допустимая пара координат внутри изображения; в противном случае возвращает false.
int QImage::width() const
Возвращает ширину изображения.
См. также Информация об изображении.
QVariant QImage::operator QVariant() const
Возвращает изображение как QVariant.
bool QImage::operator!=(const QImage &image) const
Возвращает true , если у этого изображения и заданного изображения image разное содержимое; в противном случае возвращает false.
Сравнение может быть медленным, если нет каких-либо очевидных различий, таких как разные ширины, в этом случае функция вернёт результат быстро.
См. также operator=().
bool QImage::operator==(const QImage &image) const
Возвращает true , если у этого изображения и заданного изображения image одинаковое содержимое; в противном случае возвращает false.
Сравнение может быть медленным, если нет каких-либо очевидных различий (например, разный размер или формат), в этом случае функция вернёт результат быстро.
См. также operator=().
Связанные не члены
[since 5.0] QImageCleanupFunction
Функция со следующим сигнатуром, которая может быть использована для реализации базового управления памятью изображений:
void myImageCleanupHandler(void *info);
Этот typedef был добавлен в Qt 5.0.
QDataStream &operator<<(QDataStream &stream, const QImage &image)
Записывает заданное image в заданный stream как PNG-изображение или как BMP-изображение, если версия потока равна 1. Обратите внимание, что запись потока в файл не создаст действительный файл изображения.
См. также QImage::save() и Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QImage &image)
Считывает изображение из заданного stream и сохраняет его в заданном image.
См. также QImage::load() и Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qimage.html