Класс 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 | 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 предоставляет набор функций, которые можно использовать для получения различной информации об изображении. Кроме того, существуют несколько функций, позволяющих преобразовывать изображение.
Чтение и запись файлов изображений
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 | Чтение/запись |
Информация об изображении
QPixmap предоставляет набор функций, которые можно использовать для получения различной информации об изображении:
| Доступные функции | |
|---|---|
| Геометрия | Функции size(), width() и height() предоставляют информацию о размерах изображения. Функция rect() возвращает охватывающий прямоугольник изображения. |
| Компонент альфа-канала | Функция hasAlphaChannel() возвращает true, если формат изображения поддерживает альфа-канал, в противном случае возвращает false. Функции hasAlpha(), setMask() и mask() являются устаревшими и не должны использоваться. Они могут быть очень медленными.Функция createHeuristicMask() создаёт и возвращает эвристическую маску 1-bpp (т.е. 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 делает всё определение только для чтения, что несколько эффективнее (например, при коде в общей библиотеке) и пригодно для ROM при размещении приложения в ROM.
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 если результат такой, что этот пикчер не является нулевым.
Примечание: эта функция была частью поддержки 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, используя указанный 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.
Коэффициент качества должен быть в диапазоне [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
Это перегруженный метод.
Возвращает копию изображения, масштабированную до прямоугольника заданной ширины и высоты в соответствии с заданными параметрами 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, чтобы получить область, которая становится видимой в результате прокрутки.
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. Установка другого значения имеет два эффекта:
Рисовальщики, открытые на изображении, будут масштабированы. Например, рисование на изображении размером 200x200 с коэффициентом 2.0 приведет к эффективным (независимым от устройства) границам рисования 100x100.
В Qt пути кода, которые вычисляют геометрию макета на основе размера изображения, учитывают коэффициент: QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() Конечный эффект заключается в том, что изображение отображается как изображение высокой четкости, а не большое изображение (см. Рисование изображений высокой четкости).
См. также devicePixelRatio().
void QPixmap::setMask(const QBitmap &mask)
Устанавливает маску.
Эта функция объединяет mask с альфа-каналом изображения. Значение пикселя 1 в маске означает, что пиксель изображения остается неизменным; значение 0 означает, что пиксель прозрачный. Маска должна иметь тот же размер, что и это изображение.
Установка маски равной NULL сбрасывает маску, делая ранее прозрачные пиксели чёрными. Эффект этой функции не определён, когда изображение рисуется.
Предупреждение: Это потенциально дорогостоящая операция.
См. также 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)
Возвращает фактическую матрицу, используемую для преобразования изображения с заданной шириной, высотой и матрицей.
При преобразовании изображения с помощью функции 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 &QPixmap::operator<<(QDataStream &stream, const QPixmap &pixmap)
Записывает заданный pixmap в заданный stream как изображение PNG. Обратите внимание, что запись потока в файл не создаст корректный файл изображения.
См. также QPixmap::save() и Сериализация типов данных Qt.
QDataStream &QPixmap::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.13/qpixmap.html