Spec-Zone.ru › Qt 5.14

Класс QPixmap

Класс QPixmap представляет собой изображение вне области экрана, которое можно использовать в качестве устройства рисования. Подробнее...

Заголовок: #include <QPixmap>
qmake: QT += gui
Наследуется от: QPaintDevice
Наследует классы:

QBitmap

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые функции

QPixmap(const QPixmap &pixmap)
QPixmap(const char *const [] xpm)
QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap(const QSize &size)
QPixmap(int width, int height)
QPixmap()
QPixmap & operator=(QPixmap &&other)
QPixmap & operator=(const QPixmap &pixmap)
virtual ~QPixmap()
QPixmap alphaChannel() const
qint64 cacheKey() const
bool convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap copy(const QRect &rectangle = QRect()) const
QPixmap copy(int x, int y, int width, int height) const
QBitmap createHeuristicMask(bool clipTight = true) const
QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const
int depth() const
void detach()
qreal devicePixelRatio() const
void fill(const QColor &color = Qt::white)
bool hasAlpha() const
bool hasAlphaChannel() const
int height() const
bool isNull() const
bool isQBitmap() const
bool load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
bool loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
bool loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
QBitmap mask() const
QRect rect() const
bool save(const QString &fileName, const char *format = nullptr, int quality = -1) const
bool save(QIODevice *device, const char *format = nullptr, int quality = -1) const
QPixmap scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QPixmap scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QPixmap scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
QPixmap scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
void scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr)
void scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)
void setAlphaChannel(const QPixmap &p)
void setDevicePixelRatio(qreal scaleFactor)
void setMask(const QBitmap &mask)
QSize size() const
void swap(QPixmap &other)
QImage toImage() const
QPixmap transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const
QPixmap transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
int width() const
QVariant operator QVariant() const
bool operator!() const

Статические открытые члены

int defaultDepth()
QPixmap fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor)
QTransform trueMatrix(const QTransform &matrix, int width, int height)
QMatrix trueMatrix(const QMatrix &m, int w, int h)

Связанные нечлены

QDataStream & operator<<(QDataStream &stream, const QPixmap &pixmap)
QDataStream & operator>>(QDataStream &stream, QPixmap &pixmap)

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

Qt предоставляет четыре класса для обработки данных изображений: QImage, QPixmap, QBitmap и QPicture. QImage разработан и оптимизирован для ввода-вывода и прямого доступа к пикселям и их обработки, в то время как QPixmap разработан и оптимизирован для отображения изображений на экране. QBitmap — это просто вспомогательный класс, который наследуется от QPixmap, гарантируя глубину 1. Функция isQBitmap() возвращает true, если объект QPixmap действительно является битовой картой, в противном случае возвращает false. Наконец, класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter.

QPixmap можно легко отобразить на экране с помощью QLabel или одного из подклассов QAbstractButton (таких как QPushButton и QToolButton). QLabel имеет свойство pixmap, а QAbstractButton — свойство icon.

Объекты QPixmap могут передаваться по значению, так как класс QPixmap использует неявное совместное использование данных. Дополнительную информацию см. в документации по Неявное совместное использование данных. Объекты QPixmap также можно передавать потоками.

Обратите внимание, что данные пикселей в pixmap являются внутренними и управляются основной системой окон. Поскольку QPixmap является подклассом QPaintDevice, QPainter можно использовать для прямого рисования на pixmap. К пикселям можно получить доступ только через функции QPainter или путем преобразования QPixmap в QImage. Однако доступна функция fill() для инициализации всей pixmap заданным цветом.

Существуют функции для преобразования между QImage и QPixmap. Обычно класс QImage используется для загрузки файла изображения, при необходимости манипулирования данными изображения, прежде чем объект QImage преобразуется в QPixmap для отображения на экране. В противном случае, если манипуляции не требуются, файл изображения можно загрузить непосредственно в QPixmap.

QPixmap предоставляет набор функций, которые можно использовать для получения различных сведений об объекте pixmap. Кроме того, существует несколько функций, которые позволяют преобразовывать pixmap.

Чтение и запись файлов изображений

QPixmap предоставляет несколько способов чтения файла изображения: файл можно загрузить при создании объекта QPixmap или с помощью функций load() или loadFromData() позже. При загрузке изображения имя файла может относиться как к фактическому файлу на диске, так и к одному из встроенных ресурсов приложения. Подробную информацию о том, как встраивать изображения и другие файлы ресурсов в исполняемый файл приложения, см. в обзоре Системы ресурсов Qt.

Для сохранения объекта QPixmap просто вызовите функцию save().

Полный список поддерживаемых форматов файлов доступен через функции QImageReader::supportedImageFormats() и QImageWriter::supportedImageFormats(). Новые форматы файлов могут добавляться как плагины. По умолчанию Qt поддерживает следующие форматы:

Формат Описание Поддержка Qt
BMP Windows Bitmap Чтение/запись
GIF Graphic Interchange Format (необязательно) Чтение
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 Bitmap Чтение/запись
XPM X11 Pixmap Чтение/запись

Информация о pixmap

QPixmap предоставляет набор функций, которые можно использовать для получения различных сведений о pixmap:

Доступные функции
Геометрия Функции size(), width() и height() предоставляют информацию о размерах pixmap. Функция rect() возвращает охватывающий прямоугольник изображения.
Компонент альфа-канала Функция hasAlphaChannel() возвращает true, если pixmap имеет формат, поддерживающий альфа-канал, в противном случае возвращает false. Функции hasAlpha(), setMask() и mask() являются устаревшими и не должны использоваться. Они могут быть очень медленными.

Функция createHeuristicMask() создает и возвращает эвристическую маску 1 бита (т.е. QBitmap) для этой pixmap. Она работает, выбирая цвет из одного из углов, а затем удаляя пиксели этого цвета, начиная с всех краев. Функция createMaskFromColor() создает и возвращает маску (т.е. QBitmap) для pixmap на основе заданного цвета.

Информация низкого уровня Функция depth() возвращает глубину pixmap. Функция defaultDepth() возвращает стандартную глубину, т.е. глубину, используемую приложением на данном экране.

Функция cacheKey() возвращает число, которое однозначно идентифицирует содержимое объекта QPixmap.

Преобразование pixmap

Объект QPixmap можно преобразовать в QImage с помощью функции toImage(). Аналогично, QImage можно преобразовать в QPixmap с помощью функции fromImage(). Если это слишком дорогостоящая операция, можно использовать QBitmap::fromImage() вместо нее.

Для преобразования QPixmap в HICON и обратно можно использовать функции QtWinExtras QtWin::toHICON() и QtWin::fromHICON() соответственно.

Преобразования pixmap

QPixmap поддерживает ряд функций для создания новой pixmap, которая является преобразованной версией исходной:

Функции scaled(), scaledToWidth() и scaledToHeight() возвращают масштабированные копии pixmap, а функция copy() создает QPixmap, являющуюся простой копией исходной.

Функция transformed() возвращает копию pixmap, преобразованную с помощью заданной матрицы преобразования и режима преобразования: внутри матрица преобразования корректируется для компенсации нежелательного смещения, т. е. transformed() возвращает наименьшую pixmap, содержащую все преобразованные точки исходной pixmap. Статическая функция trueMatrix() возвращает фактическую матрицу, используемую для преобразования pixmap.

См. также QBitmap, QImage, QImageReader и QImageWriter.

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

QPixmap::QPixmap(const QPixmap &pixmap)

Создаёт pixmap, являющуюся копией заданной pixmap.

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

QPixmap::QPixmap(const char *const [] xpm)

Создаёт pixmap из заданных данных xpm, которые должны представлять собой допустимое изображение XPM.

Ошибки игнорируются.

Обратите внимание, что можно немного сжать переменную XPM, используя необычное объявление:

static const char * const start_xpm[]={
    "16 15 8 1",
    "a c #cec6bd",
....

Дополнительный const делает всё определение неизменяемым, что несколько эффективнее (например, когда код находится в динамически подключаемой библиотеке) и подходит для хранения в ПЗУ, когда приложение хранится в ПЗУ.

QPixmap::QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)

Создаёт pixmap из файла с заданным именем fileName. Если файла не существует или его формат неизвестен, pixmap становится пустой.

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

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

Если изображение необходимо изменить, чтобы оно соответствовало результату с меньшим разрешением (например, преобразование из 32-битного в 8-битный), используйте флаги для управления преобразованием.

Параметры fileName, format и flags передаются в load(). Это означает, что данные в fileName не компилируются в двоичный файл. Если fileName содержит относительный путь (например, только имя файла), соответствующий файл должен быть найден относительно рабочей директории во время выполнения.

См. также Чтение и запись файлов изображений.

QPixmap::QPixmap(const QSize &size)

Это перегруженный метод.

Создаёт пикчуру заданного размера size.

Предупреждение: Это создаст QPixmap с неинициализированными данными. Вызовите fill(), чтобы заполнить пикчуру подходящим цветом перед рисованием на ней с помощью QPainter.

QPixmap::QPixmap(int width, int height)

Создаёт пикчуру заданной шириной width и высотой height. Если width или height равны нулю, создаётся нулевая пикчура.

Предупреждение: Это создаст QPixmap с неинициализированными данными. Вызовите fill(), чтобы заполнить пикчуру подходящим цветом перед рисованием на ней с помощью QPainter.

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

QPixmap::QPixmap()

Создаёт нулевую пикчуру.

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

QPixmap &QPixmap::operator=(QPixmap &&other)

Перемещает присваивание other текущему экземпляру QPixmap.

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

QPixmap &QPixmap::operator=(const QPixmap &pixmap)

Присваивает заданную pixmap текущей пикчуре и возвращает ссылку на эту пикчуру.

См. также copy() и QPixmap().

[virtual] QPixmap::~QPixmap()

Удаляет пикчуру.

QPixmap QPixmap::alphaChannel() const

Большинство случаев использования этого можно достичь с помощью QPainter и QPainter::CompositionMode.

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

qint64 QPixmap::cacheKey() const

Возвращает число, идентифицирующее эту QPixmap. Разные объекты QPixmap могут иметь одинаковый ключ кэша только если они ссылаются на одинаковое содержимое.

Ключ кэша (cacheKey) изменится, когда пикчура будет изменена.

bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Заменяет данные этой пикчуры заданным image, используя указанные флаги для управления преобразованием. Аргумент flags — битовое ИЛИ флагов Qt::ImageConversionFlags. Передача 0 для flags устанавливает все значения по умолчанию. Возвращает true если результат — эта пикчура не пустая.

Примечание: эта функция была частью поддержки Qt 3 в Qt 4.6 и ранее. Она была повышена до официального статуса API в 4.7 для поддержки обновления изображения пикчуры без создания новой QPixmap, как это делало бы fromImage().

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

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

QPixmap QPixmap::copy(const QRect &rectangle = QRect()) const

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

Если заданная rectangle пустая, копируется всё изображение.

См. также operator=(), QPixmap(), и Преобразования пикчуры.

QPixmap QPixmap::copy(int x, int y, int width, int height) const

Это перегруженный метод.

Возвращает полную копию подмножества пикчуры, заданного прямоугольником QRect( x, y, width, height).

QBitmap QPixmap::createHeuristicMask(bool clipTight = true) const

Создаёт и возвращает эвристическую маску для этой пикчуры.

Функция работает, выбирая цвет из одного из углов, а затем убирая пиксели этого цвета, начиная с всех краёв. Если clipTight равно true (значение по умолчанию), маска имеет размер, достаточный для покрытия пикселей; в противном случае маска больше, чем пиксели данных.

Маска может быть не идеальной, но должна быть приемлемой, поэтому вы можете сделать следующее:

QPixmap myPixmap;
myPixmap.setMask(myPixmap.createHeuristicMask());

Эта функция медленная, потому что она включает преобразование в/из QImage и нетривиальные вычисления.

См. также QImage::createHeuristicMask() и createMaskFromColor().

QBitmap QPixmap::createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const

Создаёт и возвращает маску для этой пикчуры, основанную на заданном maskColor. Если mode равен Qt::MaskInColor, все пиксели, совпадающие с maskColor, будут прозрачными. Если mode равен Qt::MaskOutColor, все пиксели, совпадающие с maskColor, будут непрозрачными.

Эта функция медленная, потому что она включает преобразование в/из QImage.

См. также createHeuristicMask() и QImage::createMaskFromColor().

[static] int QPixmap::defaultDepth()

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

На всех платформах будет возвращена глубина основного экрана.

Примечание: QGuiApplication должен быть создан перед вызовом этой функции.

См. также depth(), QColormap::depth(), и Информация о пикчуре.

int QPixmap::depth() const

Возвращает глубину пикчуры.

Глубина пикчуры также называется количеством бит на пиксель (bpp) или битовыми плоскостями пикчуры. У нулевой пикчуры глубина 0.

См. также defaultDepth() и Информация о пикчуре.

void QPixmap::detach()

Открепляет пикчуру от общих данных пикчуры.

Пикчура автоматически открепляется Qt всякий раз, когда её содержимое собирается измениться. Это делается практически во всех членах функций QPixmap, которые изменяют пикчуру (fill(), fromImage(), load() и т.д.), и в QPainter::begin() на пикчуре.

Есть два исключения, в которых detach() необходимо вызывать явно, т.е. при вызове handle() или x11PictureHandle() функции (доступны только в X11). В противном случае любые изменения, выполненные с помощью системных вызовов, будут выполнены в общих данных.

Функция detach() возвращает немедленно, если есть только одна ссылка или если пикчура ещё не была инициализирована.

qreal QPixmap::devicePixelRatio() const

Возвращает коэффициент пикселей устройства для пикчуры. Это отношение между пикселями устройства и независимыми от устройства пикселями.

Используйте эту функцию при расчёте геометрии макета на основе размера пикчуры: QSize layoutSize = image.size() / image.devicePixelRatio()

Значение по умолчанию — 1.0.

См. также setDevicePixelRatio() и QImageReader.

void QPixmap::fill(const QColor &color = Qt::white)

Заполняет пикчуру заданным цветом color.

Эффект этой функции не определён, когда пикчура находится в процессе рисования.

См. также Преобразования пикчуры.

[static] QPixmap QPixmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Преобразует заданный image в пикчуру, используя указанные флаги для управления преобразованием. Аргумент flags — битовое ИЛИ флагов Qt::ImageConversionFlags. Передача 0 для flags устанавливает все значения по умолчанию.

В случае монохромных и 8-битных изображений изображение сначала преобразуется в 32-битный pixmap, а затем заполняется цветами из таблицы цветов. Если эта операция слишком ресурсоёмка, можно использовать QBitmap::fromImage() вместо этого.

См. также fromImageReader(), toImage() и Преобразование пиксем.

[static] QPixmap QPixmap::fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Это перегруженный метод.

Преобразует заданное изображение image в пиксем без копирования, если это возможно.

Этот метод был представлен в Qt 5.3.

[static] QPixmap QPixmap::fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor)

Создаёт QPixmap из изображения, считанного непосредственно из imageReader. Аргумент flags — битовая сумма флагов Qt::ImageConversionFlags. Передача 0 для flags задаёт все параметры по умолчанию.

На некоторых системах чтение изображения непосредственно в QPixmap может использовать меньше памяти, чем чтение QImage для его преобразования в QPixmap.

См. также fromImage(), toImage() и Преобразование пиксем.

bool QPixmap::hasAlpha() const

Возвращает true если этот пиксем имеет альфа-канал или маску, в противном случае возвращает false.

См. также hasAlphaChannel() и mask().

bool QPixmap::hasAlphaChannel() const

Возвращает true если формат пиксема поддерживает альфа-канал, иначе возвращает false.

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

int QPixmap::height() const

Возвращает высоту пиксема.

См. также size() и Информация о пиксеме.

bool QPixmap::isNull() const

Возвращает true если это пустой пиксем, иначе возвращает false.

Пустой пиксем имеет ширину и высоту 0 и не содержит данных. В него нельзя рисовать.

bool QPixmap::isQBitmap() const

Возвращает true если это QBitmap, иначе возвращает false.

bool QPixmap::load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)

Загружает пиксем из файла с заданным именем fileName. Возвращает true, если пиксем был успешно загружен, иначе делает пиксем недействительным и возвращает false.

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

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

Если данные необходимо изменить для соответствия результату с меньшим разрешением (например, преобразование из 32-битного в 8-битный), используйте flags для управления преобразованием.

Обратите внимание, что QPixmap автоматически добавляются в QPixmapCache при загрузке из файла в главном потоке; используемый ключ внутренний и не может быть получен.

См. также loadFromData() и Чтение и запись файлов изображений.

bool QPixmap::loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)

Загружает пиксем из первых len байтов заданных двоичных data. Возвращает true если пиксем был успешно загружен; в противном случае делает пиксем недействительным и возвращает false.

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

Если данные необходимо изменить для соответствия результату с меньшим разрешением (например, преобразование из 32-битного в 8-битный), используйте flags для управления преобразованием.

См. также load() и Чтение и запись файлов изображений.

bool QPixmap::loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)

Это перегруженный метод.

Загружает пиксем из двоичных data с указанным форматом format и флагами преобразования flags.

QBitmap QPixmap::mask() const

Извлекает битовую маску из альфа-канала пиксема.

Предупреждение: Это потенциально дорогостоящая операция. Маска пиксема извлекается динамически из данных пикселей.

См. также setMask() и Информация о пиксеме.

QRect QPixmap::rect() const

Возвращает ограничивающую прямоугольник пиксема.

См. также Информация о пиксеме.

bool QPixmap::save(const QString &fileName, const char *format = nullptr, int quality = -1) const

Сохраняет пиксем в файл с заданным именем fileName с указанным форматом файла изображения format и коэффициентом качества quality. Возвращает true при успехе; в противном случае возвращает false.

Коэффициент quality должен находиться в диапазоне [0,100] или -1. Укажите 0 для получения небольших сжатых файлов, 100 для больших несжатых файлов и -1 для использования значений по умолчанию.

Если format равен 0, формат изображения будет выбран из расширения fileName.

См. также Чтение и запись файлов изображений.

bool QPixmap::save(QIODevice *device, const char *format = nullptr, int quality = -1) const

Это перегруженный метод.

Этот метод записывает QPixmap в указанный device с использованием указанного формата файла изображения format и коэффициента качества quality. Например, это можно использовать для сохранения пиксема непосредственно в QByteArray:

        QPixmap pixmap;
        QByteArray bytes;
        QBuffer buffer(&bytes);
        buffer.open(QIODevice::WriteOnly);
        pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format

QPixmap QPixmap::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 пустой, этот метод возвращает пустой пиксем.

В некоторых случаях может быть полезнее нарисовать пиксем в рисовальщике с установленным масштабом, а не масштабировать сам пиксем. Это имеет место, например, если рисовальщик основан на OpenGL или если коэффициент масштаба изменяется быстро.

См. также isNull() и Преобразования пиксем.

QPixmap QPixmap::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

Это перегруженный метод.

Возвращает копию пиксема, масштабированную до прямоугольника с заданной шириной width и высотой height в соответствии с заданным aspectRatioMode и transformMode.

Если width или height равны нулю или отрицательны, этот метод возвращает пустой пиксем.

QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const

Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до указанной height с использованием указанного режима преобразования mode. Ширина пиктограммы автоматически вычисляется так, чтобы сохранялось соотношение сторон пиктограммы.

Если height равна 0 или меньше, возвращается нулевая пиктограмма.

См. также isNull() и Преобразования пиктограмм.

QPixmap QPixmap::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const

Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до указанной width с использованием указанного режима преобразования mode. Высота пиктограммы автоматически вычисляется так, чтобы сохранялось соотношение сторон пиктограммы.

Если width равна 0 или меньше, возвращается нулевая пиктограмма.

См. также isNull() и Преобразования пиктограмм.

void QPixmap::scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr)

Эта функция-удобство эквивалентна вызову QPixmap::scroll(dx, dy, QRect(x, y, width, height), exposed).

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

См. также QWidget::scroll() и QGraphicsItem::scroll().

void QPixmap::scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)

Прокручивает область rect этой пиктограммы на (dx, dy). Область, которая была показана, остается неизменной. Вы можете необязательно передать указатель на пустую QRegion, чтобы получить область, exposed, которую прокрутка делает видимой.

QPixmap pixmap("background.png");
QRegion exposed;
pixmap.scroll(10, 10, pixmap.rect(), &exposed);

Вы не можете прокручивать, пока активен художник над пиктограммой.

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

См. также QWidget::scroll() и QGraphicsItem::scroll().

void QPixmap::setAlphaChannel(const QPixmap &p)

Большинство случаев использования этого метода можно решить, используя p с QPainter и QPainter::CompositionMode вместо этого.

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

void QPixmap::setDevicePixelRatio(qreal scaleFactor)

Устанавливает коэффициент пикселей устройства для пиктограммы. Это отношение между пикселями изображения и независимыми от устройства пикселями.

Значение по умолчанию для scaleFactor — 1.0. Установка другого значения имеет два эффекта:

QPainters, открытые на пиктограмме, будут масштабироваться. Например, рисование на изображении 200x200 с коэффициентом 2.0 приведет к эффективным (независимым от устройства) границам рисования 100x100.

В Qt пути кода, которые вычисляют геометрию макета на основе размера пиктограммы, будут учитывать коэффициент: QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() В итоге, пиктограмма отображается как пиктограмма высокой DPI, а не как большая пиктограмма (см. Рисование версий с высоким разрешением пиктограмм и изображений).

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

void QPixmap::setMask(const QBitmap &mask)

Устанавливает маску битовой карты.

Эта функция объединяет mask с альфа-каналом пиктограммы. Значение пикселя 1 в маске означает, что пиксель пиктограммы не изменяется; значение 0 означает, что пиксель прозрачный. Маска должна иметь тот же размер, что и эта пиктограмма.

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

Предупреждение: Это потенциально дорогостоящая операция.

См. также mask(), Преобразования пиктограмм и QBitmap.

QSize QPixmap::size() const

Возвращает размер пиктограммы.

См. также width(), height() и Информация о пиктограмме.

void QPixmap::swap(QPixmap &other)

Меняет местами пиктограмму other с этой пиктограммой. Эта операция очень быстрая и никогда не терпит неудачу.

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

QImage QPixmap::toImage() const

Преобразует пиктограмму в QImage. Возвращает нулевое изображение, если преобразование не выполняется.

Если пиктограмма имеет глубину 1 бит, возвращаемое изображение также будет иметь глубину 1 бит. Изображения с большим количеством битов будут возвращены в формате, близком к базовой системе. Обычно это QImage::Format_ARGB32_Premultiplied для пиктограмм с альфа-каналом и QImage::Format_RGB32 или QImage::Format_RGB16 для пиктограмм без альфа-канала.

Обратите внимание, что на данный момент маски альфа-каналов в монохромных изображениях игнорируются.

См. также fromImage() и Форматы изображений.

QPixmap QPixmap::transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const

Возвращает копию пиктограммы, преобразованную с помощью заданного преобразования transform и режима преобразования mode. Исходная пиктограмма не изменяется.

Преобразование transform внутренне корректируется для компенсации нежелательного смещения; т.е. возвращаемая пиктограмма — это наименьшая пиктограмма, содержащая все преобразованные точки исходной пиктограммы. Используйте функцию trueMatrix(), чтобы получить фактическую матрицу, используемую для преобразования пиктограммы.

Эта функция медленная, так как включает преобразование в QImage, нетривиальные вычисления и преобразование обратно в QPixmap.

См. также trueMatrix() и Преобразования пиктограмм.

QPixmap QPixmap::transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const

Это перегруженная функция.

Эта функция-удобство загружает matrix в QTransform и вызывает перегруженную функцию.

QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)

Возвращает фактическую матрицу, используемую для преобразования пиктограммы с заданной width, height и matrix.

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

См. также transformed() и Преобразования пиктограмм.

QMatrix QPixmap::trueMatrix(const QMatrix &m, int w, int h)

Это перегруженная функция.

Эта функция-удобство загружает матрицу m в QTransform и вызывает перегруженную функцию с QTransform и шириной w и высотой h.

int QPixmap::width() const

Возвращает ширину пиктограммы.

См. также size() и Информация о пиктограмме.

QVariant QPixmap::operator QVariant() const

Возвращает пиктограмму как QVariant.

bool QPixmap::operator!() const

Возвращает true если это нулевая пиктограмма; в противном случае возвращает false.

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

Связанные нечлены

QDataStream &operator<<(QDataStream &stream, const QPixmap &pixmap)

Записывает заданную pixmap в заданный stream как изображение PNG. Обратите внимание, что запись потока в файл не создаст корректный файл изображения.

См. также QPixmap::save() и Сериализация типов данных Qt.

QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)

Считывает изображение из заданного stream в заданную pixmap.

См. также QPixmap::load() и Сериализация типов данных Qt.

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

Spec-Zone.ru

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