Класс QPixmap
Класс QPixmap представляет собой изображение вне области экрана, которое может использоваться в качестве устройства рисования. Подробнее...
| Заголовок: | #include <QPixmap> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QPaintDevice |
| Наследуется от: |
Общедоступные функции
| QPixmap(QPixmap &&other) | |
| 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() |
| 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 | 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 |
| 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) |
Related Non-Members
| QDataStream & | operator<<(QDataStream &stream, const QPixmap &pixmap) |
| QDataStream & | operator>>(QDataStream &stream, QPixmap &pixmap) |
Detailed Description
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 для получения подробной информации о том, как встраивать изображения и другие файлы ресурсов в исполняемый файл приложения.
Просто вызовите функцию save() для сохранения объекта QPixmap.
Полный список поддерживаемых форматов файлов доступен через функции 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(QPixmap &&other)
Создаёт экземпляр QPixmap из other с помощью перемещения.
См. также swap() и operator=(QPixmap&&).
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",
// etc.
}; Дополнительные const делают всё определение константным, что немного эффективнее (например, при использовании в библиотеке совместно используемого кода) и пригодно для использования в ПЗУ при хранении приложения в ПЗУ.
QPixmap::QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
Создаёт пикчуру из файла с заданным именем fileName. Если файл не существует или имеет неизвестный формат, пикчура становится нулевой.
Загрузчик пытается прочитать пикчуру, используя указанный формат format. Если формат format не указан (что является значением по умолчанию), загрузчик анализирует заголовок файла, чтобы определить формат.
Имя файла может указывать на фактический файл на диске или на один из встроенных ресурсов приложения. См. обзор Системы ресурсов для получения подробностей о том, как встраивать изображения и другие файлы ресурсов в исполняемый файл приложения.
Если изображение нужно изменить, чтобы оно соответствовало результату с меньшим разрешением (например, преобразование из 32-битного в 8-битное), используйте флаги flags для управления преобразованием.
Параметры 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().
[since 5.2] QPixmap &QPixmap::operator=(QPixmap &&other)
Перемещает other в этот экземпляр QPixmap.
Этот метод был добавлен в Qt 5.2.
QPixmap &QPixmap::operator=(const QPixmap &pixmap)
Присваивает заданную pixmap этой пикчуре и возвращает ссылку на эту пикчуру.
[virtual] QPixmap::~QPixmap()
Уничтожает пикчуру.
qint64 QPixmap::cacheKey() const
Возвращает число, которое идентифицирует этот объект QPixmap. Разные объекты QPixmap могут иметь одинаковый ключ кэша только в случае, если они ссылаются на одно и то же содержимое.
cacheKey() изменится, когда пикчура будет изменена.
bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
Заменяет данные этой пикчуры данными из заданного image, используя заданные flags для управления преобразованием. Аргумент flags — это побитовое ИЛИ флагов Qt::ImageConversionFlags. Передача 0 для flags устанавливает все значения по умолчанию. Возвращает true если результат — это то, что эта пикчура не нулевая.
Примечание: эта функция была частью поддержки Qt 3 в Qt 4.6 и ранее. Она была повышена до официального статуса API в 4.7, чтобы поддержать обновление изображения пикчуры без создания новой QPixmap, как это делало fromImage().
См. также 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)
Преобразует заданное изображение в пикселмап, используя указанные флаги для управления преобразованием. Аргумент flags представляет собой побитовое ИЛИ флагов Qt::ImageConversionFlags. Передача 0 для flags устанавливает все значения по умолчанию.
В случае монохромных и 8-битных изображений, изображение сначала преобразуется в 32-битный пикселмап, а затем заполняется цветами из таблицы цветов. Если эта операция слишком затратная, можно использовать QBitmap::fromImage() вместо этого.
См. также fromImageReader(), toImage() и Преобразование пикселмапов.
[static, since 5.3] QPixmap QPixmap::fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)
Это перегруженный метод.
Преобразует заданное изображение в пикселмап без копирования, если это возможно.
Этот метод был представлен в 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.
Пустой пикселмап имеет нулевую ширину, нулевую высоту и не содержит данных. В пустой пикселмап нельзя рисовать.
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 для управления преобразованием.
Обратите внимание, что QPixmaps автоматически добавляются в 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 равен nullptr, формат изображения будет выбран по суффиксу 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.
Если ширина или высота равны нулю или отрицательны, эта функция возвращает нулевую карту пикселей.
QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до заданной высоты с использованием указанного режима преобразования mode. Ширина карты пикселей вычисляется автоматически для сохранения соотношения сторон карты пикселей.
Если высота равна 0 или отрицательна, возвращается нулевая карта пикселей.
См. также isNull() и Преобразования карт пикселей.
QPixmap QPixmap::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает масштабированную копию изображения. Возвращаемое изображение масштабируется до заданной ширины с использованием указанного режима преобразования mode. Высота карты пикселей вычисляется автоматически для сохранения соотношения сторон карты пикселей.
Если ширина равна 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).
См. также QWidget::scroll() и QGraphicsItem::scroll().
void QPixmap::scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)
Прокручивает область rect этой карты пикселей на (dx, dy). Область, которая была открыта, остается неизменной. Вы можете необязательно передать указатель на пустую QRegion, чтобы получить область, которая открывается в результате операции прокрутки.
QPixmap pixmap("background.png");
QRegion exposed;
pixmap.scroll(10, 10, pixmap.rect(), &exposed); Вы не можете прокручивать, пока на карте пикселей активен рисовальщик.
См. также QWidget::scroll() и QGraphicsItem::scroll().
void QPixmap::setDevicePixelRatio(qreal scaleFactor)
Устанавливает коэффициент пикселей устройства для карты пикселей. Это отношение между пикселями изображения и независимыми от устройства пикселями.
По умолчанию scaleFactor равен 1.0. Установка другого значения оказывает два эффекта:
Рисовальщики, открытые на карте пикселей, будут масштабироваться. Например, рисование на изображении 200x200 с коэффициентом 2.0 приведет к эффективным (независимым от устройства) границам рисования 100x100.
Пути кода в Qt, вычисляющие геометрию макета на основе размера карты пикселей, учтут этот коэффициент: QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() Конечный результат заключается в том, что карта пикселей отображается как карта пикселей высокой DPI, а не как большая карта пикселей (см. Рисование высококачественных версий карт пикселей и изображений).
См. также devicePixelRatio().
void QPixmap::setMask(const QBitmap &mask)
Устанавливает маску битовой карты.
Эта функция объединяет маску с альфа-каналом карты пикселей. Значение пикселя 1 в маске означает, что пиксель карты пикселей остается без изменений; значение 0 означает, что пиксель прозрачный. Маска должна иметь тот же размер, что и эта карта пикселей.
Установка нулевой маски сбрасывает маску, оставляя ранее прозрачные пиксели черными. Эффект этой функции не определен, когда на карте пикселей происходит рисование.
Предупреждение: Эта операция может быть дорогостоящей.
См. также mask(), Преобразования карт пикселей и QBitmap.
QSize QPixmap::size() const
Возвращает размер карты пикселей.
См. также width(), height() и Информация о карте пикселей.
void QPixmap::swap(QPixmap &other)
Меняет местами карту пикселей other с этой картой пикселей. Эта операция очень быстрая и никогда не терпит неудачу.
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() и Преобразования карт пикселей.
QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
Возвращает фактическую матрицу, используемую для преобразования карты пикселей с заданной шириной, высотой и матрицей.
При преобразовании карты пикселей с помощью функции transformed() матрица преобразования внутренне корректируется для компенсации нежелательного смещения, т.е. transformed() возвращает наименьшую карту пикселей, содержащую все преобразованные точки исходной карты пикселей. Эта функция возвращает изменённую матрицу, которая правильно отображает точки из исходной карты пикселей в новую карту пикселей.
См. также transformed() и Преобразования карт пикселей.
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 в заданный поток как изображение PNG. Обратите внимание, что запись в файл не приведет к созданию корректного файла изображения.
См. также QPixmap::save() и Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)
Считывает изображение из заданного потока в заданную pixmap.
См. также QPixmap::load() и Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qpixmap.html