Spec-Zone.ru › Qt 6.1

Класс QPixmap

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

Заголовок: #include <QPixmap>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследуется от: QPaintDevice
Наследует:

QBitmap

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

Общедоступные функции

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)

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

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, если формат pixmap поддерживает альфа-канал, в противном случае возвращает false. Функции hasAlpha(), setMask() и mask() устарели и не должны использоваться. Они потенциально очень медленные.

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

Информация низкого уровня Функция 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(QPixmap &&other)

Перемещающее создание объекта QPixmap из other.

См. также swap() и operator=(QPixmap&&).

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",
    // 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 этому пикчеру и возвращает ссылку на этот пикчер.

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

[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)

Преобразует заданное image в пикчер, используя указанные flags для управления преобразованием. Аргумент 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)

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

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

Этот метод был введён в Qt 5.3.

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

Создаёт QPixmap из изображения, считанного непосредственно из imageReader. Аргумент flags представляет собой битовую операцию OR флагов 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.

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

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

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

Если высота равна 0 или отрицательна, возвращается нулевая пиксельная карта.

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

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

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

Если ширина равна 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. Установка другого значения имеет два эффекта:

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

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

См. также 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 в заданный 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-6.1/qpixmap.html

Spec-Zone.ru

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