Класс QPixmap
Класс QPixmap представляет изображение вне области экрана, которое может использоваться в качестве устройства рисования. Подробнее...
| Заголовок: | #include <QPixmap> |
| qmake: | QT += gui |
| Наследует: | QPaintDevice |
| Наследуется от: |
Открытые функции
| 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 | размер() const |
| void | обменять(QPixmap &other) |
| QImage | toImage() const |
| QPixmap | преобразованная(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const |
| int | ширина() 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) |
Связанные нечлены
| 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() предоставляют информацию о размерах пиктограммы. Функция rect() возвращает ограничивающую прямоугольник изображения. |
| Компонент альфа-канала | Функция hasAlphaChannel() возвращает true, если пиктограмма имеет формат, поддерживающий альфа-канал, в противном случае возвращает false. Функции hasAlpha(), setMask() и mask() устарели и не должны использоваться. Они могут быть очень медленными.Функция createHeuristicMask() создаёт и возвращает эвристическую маску 1-бит (т.е. QBitmap) для этой пиктограммы. Она работает, выбирая цвет из одного из углов и затем удаляя пиксели этого цвета, начиная с всех краёв. Функция createMaskFromColor() создаёт и возвращает маску (т.е. QBitmap) для пиктограммы на основе заданного цвета. |
| Информация низкого уровня | Функция depth() возвращает глубину пиктограммы. Функция defaultDepth() возвращает глубину по умолчанию, т.е. глубину, используемую приложением на данном экране. Функция cacheKey() возвращает число, которое уникально идентифицирует содержимое объекта QPixmap. |
Преобразование пиктограмм
Объект QPixmap может быть преобразован в QImage с помощью функции toImage(). Аналогично, QImage может быть преобразована в QPixmap с помощью функции fromImage(). Если это слишком дорогостоящая операция, вы можете использовать QBitmap::fromImage() вместо этого.
Для преобразования QPixmap в HICON и обратно можно использовать функции QtWinExtras: QtWin::toHICON() и QtWin::fromHICON() соответственно.
Преобразования пиктограмм
QPixmap поддерживает ряд функций для создания новой пиктограммы, которая является преобразованной версией исходной:
Функции scaled(), scaledToWidth() и scaledToHeight() возвращают масштабированные копии пиктограммы, а функция copy() создаёт QPixmap, являющуюся простой копией исходной.
Функция transformed() возвращает копию пиктограммы, преобразованную заданной матрицей преобразования и режимом преобразования: внутренне матрица преобразования корректируется для компенсации нежелательного сдвига, т.е. transformed() возвращает самую маленькую пиктограмму, содержащую все преобразованные точки исходной пиктограммы. Статическая функция trueMatrix() возвращает фактическую матрицу, используемую для преобразования пиктограммы.
См. также QBitmap, QImage, QImageReader и QImageWriter.
Документация по функциям-членам
QPixmap::QPixmap(const QPixmap &pixmap)
Создаёт пиктограмму, являющуюся копией заданной pixmap.
См. также copy().
QPixmap::QPixmap(const char *const [] xpm)
Создаёт пиктограмму из заданных данных 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)
Создаёт пиктограмму из файла с заданным именем файла 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().
QPixmap &QPixmap::operator=(QPixmap &&other)
Перемещает присваивание other данному экземпляру QPixmap.
Этот метод был представлен в Qt 5.2.
QPixmap &QPixmap::operator=(const QPixmap &pixmap)
Присваивает заданный pixmap этому пикчеру и возвращает ссылку на этот пикчер.
[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 для управления преобразованием. Аргумент flags — битовая-ИЛИ комбинация Qt::ImageConversionFlags. Передача 0 для flags устанавливает все параметры по умолчанию. Возвращает true если результатом является то, что этот пикчер не null.
Примечание: эта функция была частью поддержки 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 для управления преобразованием. Аргумент flags — это побитовое ИЛИ флагов Qt::ImageConversionFlags. Передача 0 для flags устанавливает все значения по умолчанию.
В случае черно-белых и 8-битных изображений изображение сначала преобразуется в 32-битное пиксельное изображение, а затем заполняется цветами в таблице цветов. Если это слишком дорогостоящая операция, можно использовать 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.
Нулевой пикчер имеет нулевую ширину, нулевую высоту и не содержит данных. Вы не можете рисовать в нулевом пикчере.
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, используя указанный формат и флаги преобразования 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, используя указанный формат и коэффициент качества 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 в указанный устройство, используя указанный формат и коэффициент качества 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 пуст, эта функция возвращает пустой пикчер.
В некоторых случаях может быть выгоднее нарисовать пикчер в painter с заданным масштабом, а не масштабировать сам пикчер. Это справедливо, например, когда painter основан на OpenGL или когда коэффициент масштабирования меняется быстро.
См. также isNull() и Преобразования пикчера.
QPixmap QPixmap::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
Это перегруженный метод.
Возвращает копию пикчера, масштабированного до прямоугольника с заданной шириной и высотой в соответствии с заданным aspectRatioMode и transformMode.
Если ширина или высота равны нулю или отрицательны, эта функция возвращает пустой пикчер.
QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
Возвращает отмасштабированную копию изображения. Возвращаемое изображение масштабируется до заданной высоты, используя указанный режим преобразования 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, чтобы получить область, которая была открыта в результате операции прокрутки.
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() В итоге пиксель отображается как пиксель высокой четкости, а не как большое изображение (см. Рисование версий пикселей и изображений высокой четкости).
См. также 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() и Преобразования пиктограмм.
[static] QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
Возвращает фактическую матрицу, используемую для преобразования пиктограммы с заданной шириной width, высотой height и матрицей matrix.
При преобразовании пиктограммы с помощью функции 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 в заданный 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.15/qpixmap.html