Spec-Zone.ru › Qt

Класс 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()
QSizeF deviceIndependentSize() const
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 предоставляет набор функций, которые могут использоваться для получения различной информации об объекте pixmap. Кроме того, есть несколько функций, позволяющих преобразовать pixmap.

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

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

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

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

Формат Описание Поддержка Qt
BMP Windows Bitmap Чтение/запись
GIF Graphic Interchange Format (необязательно) Чтение
JPG Joint Photographic Experts Group Чтение/запись
JPEG Joint Photographic Experts Group Чтение/запись
PNG Portable Network Graphics Чтение/запись
PBM Portable Bitmap Чтение
PGM Portable Graymap Чтение
PPM Portable Pixmap Чтение/запись
XBM X11 Bitmap Чтение/запись
XPM X11 Pixmap Чтение/запись

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QPixmap::QPixmap(QPixmap &&other)

Конструирует экземпляр QPixmap из other с помощью перемещения.

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

QPixmap::QPixmap(const QPixmap &pixmap)

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

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

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

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

Ошибки игнорируются молча.

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

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

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

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

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

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

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

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

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

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

QPixmap::QPixmap(const QSize &size)

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

Создаёт пиксельмап заданного размера size.

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

QPixmap::QPixmap(int width, int height)

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

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

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

QPixmap::QPixmap()

Создаёт нулевой пиксельмап.

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

[since 5.2] QPixmap &QPixmap::operator=(QPixmap &&other)

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

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

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

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

См. также 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() возвращает значение немедленно, если есть только одна ссылка или если пиксельмап ещё не был инициализирован.

QSizeF QPixmap::deviceIndependentSize() const

Возвращает размер пиксельмапа в устройствах независимых пикселях.

Это значение следует использовать при использовании размера пиксельмапа в расчётах размера пользовательского интерфейса.

Возвращаемое значение эквивалентно pixmap.size() / pixmap.devicePixelRatio().

qreal QPixmap::devicePixelRatio() const

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

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

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

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

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

Заполняет пиксельмап заданным цветом color.

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

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

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

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

В случае монохромных и 8-битных изображений изображение сначала преобразуется в 32-битную пиксельмапу, а затем заполняется цветами из таблицы цветов. Если такая операция слишком ресурсоёмкая, вы можете использовать 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 представляет собой побитовое ИЛИ флагов 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

Коэффициент качества должен находиться в диапазоне [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 пустой, этот метод возвращает нулевую пиксельмапу.

В некоторых случаях может быть более выгодно нарисовать пиксельмапу на отрисовщике с заданным масштабом, а не масштабировать пиксельмапу. Это особенно актуально, если отрисовщик, например, основан на 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. Ширина пиксельного изображения автоматически вычисляется таким образом, чтобы сохранялось соотношение сторон пиксельного изображения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void QPixmap::setDevicePixelRatio(qreal scaleFactor)

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

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

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

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

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

void QPixmap::setMask(const QBitmap &mask)

Устанавливает битовое изображение маски.

Эта функция объединяет 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() и Преобразования пиксельных изображений.

[static] 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.2/qpixmap.html

Spec-Zone.ru

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