Sur cette page

QPixmap Class

La classe QPixmap est une représentation d'image hors écran qui peut être utilisée comme dispositif de peinture. Plus d'informations...

En-tête : #include <QPixmap>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite : QPaintDevice
Hérité par :

QBitmap

Fonctions publiques

QPixmap()
QPixmap(const char *const[] xpm)
QPixmap(int width, int height)
QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap(const QSize &size)
QPixmap(const QPixmap &pixmap)
QPixmap(QPixmap &&other)
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()
(since 6.2) 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, const QRect &rect, QRegion *exposed = nullptr)
void scroll(int dx, int dy, int x, int y, int width, int height, 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
operator QVariant() const
bool operator!() const
QPixmap &operator=(QPixmap &&other)
QPixmap &operator=(const QPixmap &pixmap)

Membres publics statiques

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)

Description détaillée

Qt fournit quatre classes pour gérer les données d'image : QImage QPixmap, QBitmap et QPicture. QImage est conçue et optimisée pour les E/S, ainsi que pour l'accès direct aux pixels et leur manipulation, tandis que QPixmap est conçue et optimisée pour l'affichage d'images à l'écran. QBitmap n'est qu'une classe de commodité qui hérite de QPixmap, garantissant une profondeur de 1. La fonction isQBitmap() renvoie true si un objet QPixmap est réellement une image bitmap, sinon elle renvoie false. Enfin, la classe QPicture est un dispositif de peinture qui enregistre et rejoue les commandes QPainter.

Une QPixmap peut facilement être affichée à l'écran à l'aide de QLabel ou de l'une des sous-classes de QAbstractButton(telles que QPushButton et QToolButton). QLabel possède une propriété pixmap, tandis que QAbstractButton possède une propriété icon.

Les objets QPixmap peuvent être transmis par valeur puisque la classe QPixmap utilise le partage implicite des données. Pour plus d'informations, voir la documentation sur le partage implicite des données. Les objets QPixmap peuvent également être transmis en continu.

Notez que les données des pixels d'une pixmap sont internes et gérées par le système de fenêtres sous-jacent. QPixmap étant une sous-classe de QPaintDevice, QPainter peut être utilisé pour dessiner directement sur des cartes de pixels. Les pixels ne sont accessibles que par l'intermédiaire des fonctions QPainter ou en convertissant la QPixmap en QImage. Toutefois, la fonction fill() est disponible pour initialiser l'ensemble de la pixmap avec une couleur donnée.

Il existe des fonctions de conversion entre QImage et QPixmap. Généralement, la classe QImage est utilisée pour charger un fichier image, en manipulant éventuellement les données de l'image, avant que l'objet QImage ne soit converti en QPixmap pour être affiché à l'écran. Si aucune manipulation n'est souhaitée, le fichier image peut également être chargé directement dans une QPixmap.

QPixmap fournit une collection de fonctions qui peuvent être utilisées pour obtenir une variété d'informations sur la pixmap. En outre, plusieurs fonctions permettent de transformer la pixmap.

Lecture et écriture de fichiers d'images

QPixmap propose plusieurs façons de lire un fichier image : Le fichier peut être chargé lors de la construction de l'objet QPixmap ou en utilisant les fonctions load() ou loadFromData() ultérieurement. Lors du chargement d'une image, le nom du fichier peut faire référence soit à un fichier réel sur le disque, soit à l'une des ressources intégrées de l'application. Voir l'aperçu du système de ressources Qt pour plus de détails sur la manière d'incorporer des images et d'autres fichiers de ressources dans l'exécutable de l'application.

Il suffit d'appeler la fonction save() pour enregistrer un objet QPixmap.

La liste complète des formats de fichiers pris en charge est disponible via les fonctions QImageReader::supportedImageFormats() et QImageWriter::supportedImageFormats(). De nouveaux formats de fichiers peuvent être ajoutés sous forme de modules d'extension. Par défaut, Qt prend en charge les formats suivants :

FormatDescription du formatPrise en charge par Qt
BMPBitmap WindowsLecture/écriture
CURCurseur WindowsLecture/écriture
GIFFormat d'échange graphiqueLire
ICOIcône WindowsLire/écrire
JFIFFormat d'échange de fichiers JPEGLecture/écriture
JPEGGroupe mixte d'experts en photographieLecture/écriture
JPGGroupe mixte d'experts en photographieLecture/écriture
PBMBitmap portableLecture/écriture
PGMCarte grise portableLecture/écriture
PNGGraphique de réseau portableLecture/écriture
PPMPixmap portableLecture/écriture
SVGGraphiques vectoriels évolutifsLire
SVGZGraphique vectoriel extensible (compressé)Lire
XBMBitmap X11Lecture/écriture
XPMX11 PixmapLecture/écriture

D'autres formats sont pris en charge si le module Qt Image Formats est installé.

Informations sur les images

QPixmap fournit une collection de fonctions qui peuvent être utilisées pour obtenir une variété d'informations sur la pixmap :

Fonctions disponibles
GéométrieLes fonctions size(), width() et height() fournissent des informations sur la taille de la pixmap. La fonction rect() renvoie le rectangle englobant de l'image.
Composante alphaLa fonction hasAlphaChannel() renvoie true si la pixmap a un format qui respecte le canal alpha, sinon elle renvoie false. Les fonctions hasAlpha(), setMask() et mask() sont héritées et ne doivent pas être utilisées. Elles sont potentiellement très lentes.

La fonction createHeuristicMask() crée et renvoie un masque heuristique de 1 bpp (c'est-à-dire un QBitmap) pour cette pixmap. Elle sélectionne une couleur dans l'un des coins et élimine les pixels de cette couleur en commençant par tous les bords. La fonction createMaskFromColor() crée et renvoie un masque (c'est-à-dire un QBitmap) pour la pixmap en fonction d'une couleur donnée.

Informations de bas niveauLa fonction depth() renvoie la profondeur de la pixmap. La fonction defaultDepth() renvoie la profondeur par défaut, c'est-à-dire la profondeur utilisée par l'application sur l'écran donné.

La fonction cacheKey() renvoie un nombre qui identifie de manière unique le contenu de l'objet QPixmap.

Conversion des images

Un objet QPixmap peut être converti en QImage à l'aide de la fonction toImage(). De même, un objet QImage peut être converti en un objet QPixmap à l'aide de la fonction fromImage(). Si cette opération est trop coûteuse, vous pouvez utiliser QBitmap::fromImage() à la place.

Pour convertir une QPixmap vers et depuis HICON, vous pouvez utiliser les fonctions QImage::toHICON() et QImage::fromHICON() respectivement (après avoir converti la QPixmap en QImage, comme expliqué ci-dessus).

Transformations des images

QPixmap prend en charge un certain nombre de fonctions permettant de créer une nouvelle pixmap qui est une version transformée de l'original :

Les fonctions scaled(), scaledToWidth() et scaledToHeight() renvoient des copies à l'échelle de la pixmap, tandis que la fonction copy() crée une QPixmap qui est une simple copie de l'original.

La fonction transformed() renvoie une copie de la pixmap transformée avec la matrice de transformation et le mode de transformation donnés : En interne, la matrice de transformation est ajustée pour compenser les translations indésirables, c'est-à-dire que transformed() renvoie la plus petite pixmap contenant tous les points transformés de la pixmap d'origine. La fonction statique trueMatrix() renvoie la matrice utilisée pour transformer la pixmap.

Voir aussi QBitmap, QImage, QImageReader, et QImageWriter.

Documentation des fonctions membres

QPixmap::QPixmap()

Construit un pixmap nul.

Voir aussi isNull().

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

Construit une pixmap à partir des données fournies par xpm, qui doit être une image XPM valide.

Les erreurs sont ignorées silencieusement.

Notez qu'il est possible de réduire un peu la taille de la variable XPM en utilisant une déclaration inhabituelle :

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

Le const supplémentaire rend la définition entière en lecture seule, ce qui est légèrement plus efficace (par exemple, lorsque le code est dans une bibliothèque partagée) et ROMable lorsque l'application doit être stockée en ROM.

QPixmap::QPixmap(int width, int height)

Construit un pixmap avec les données width et height. Si width ou height est zéro, un pixmap nul est construit.

Attention : Ceci créera un QPixmap avec des données non initialisées. Appelez fill() pour remplir la pixmap avec une couleur appropriée avant de dessiner dessus avec QPainter.

Voir aussi isNull().

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

Construit un pixmap à partir du fichier avec l'adresse fileName. Si le fichier n'existe pas ou est d'un format inconnu, la pixmap devient une pixmap nulle.

Le chargeur tente de lire la pixmap à l'aide de l'adresse format spécifiée. Si l'adresse format n'est pas spécifiée (ce qui est le cas par défaut), le chargeur recherche dans le fichier un en-tête permettant de deviner le format du fichier.

Le nom du fichier peut faire référence soit à un fichier réel sur le disque, soit à l'une des ressources intégrées de l'application. Voir la vue d'ensemble du système de ressources pour plus de détails sur la manière d'intégrer des images et d'autres fichiers de ressources dans l'exécutable de l'application.

Si l'image doit être modifiée pour s'adapter à un résultat de résolution inférieure (par exemple, conversion de 32 bits à 8 bits), utilisez le site flags pour contrôler la conversion.

Les paramètres fileName, format et flags sont transmis à load(). Cela signifie que les données contenues dans fileName ne sont pas compilées dans le fichier binaire. Si fileName contient un chemin relatif (par exemple, le nom de fichier uniquement), le fichier concerné doit être trouvé par rapport au répertoire de travail de l'exécution.

Voir également Reading and Writing Image Files.

[explicit] QPixmap::QPixmap(const QSize &size)

Construit une pixmap à partir de size.

Attention : Ceci créera une QPixmap avec des données non initialisées. Appelez fill() pour remplir la pixmap avec une couleur appropriée avant de dessiner dessus avec QPainter.

Il s'agit d'une fonction surchargée.

QPixmap::QPixmap(const QPixmap &pixmap)

Construit une pixmap qui est une copie de l'image donnée pixmap.

Voir aussi copy().

[noexcept] QPixmap::QPixmap(QPixmap &&other)

Move-construit une instance de QPixmap à partir de other.

Voir aussi swap() et operator=(QPixmap&&).

[virtual noexcept] QPixmap::~QPixmap()

Détruit la pixmap.

qint64 QPixmap::cacheKey() const

Renvoie un numéro qui identifie cet objet QPixmap. Des objets QPixmap distincts ne peuvent avoir la même clé de cache que s'ils font référence au même contenu.

La clé de cache() changera lorsque la pixmap sera modifiée.

bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Remplace les données de ce pixmap par celles de image en utilisant flags pour contrôler la conversion. L'argument flags est un OU bit à bit de l'argument Qt::ImageConversionFlags. Passer 0 pour flags définit toutes les options par défaut. Retourne true si le résultat est que cette pixmap n'est pas nulle.

Voir aussi fromImage().

QPixmap QPixmap::copy(const QRect &rectangle = QRect()) const

Renvoie une copie profonde du sous-ensemble de la pixmap spécifié par l'adresse rectangle. Pour plus d'informations sur les copies profondes, voir la documentation sur le partage implicite de données.

Si rectangle est vide, l'image entière est copiée.

Voir aussi operator=(), QPixmap(), et Pixmap Transformations.

QPixmap QPixmap::copy(int x, int y, int width, int height) const

Renvoie une copie profonde du sous-ensemble de la pixmap spécifié par le rectangle QRect( x, y, width, height).

Il s'agit d'une fonction surchargée.

QBitmap QPixmap::createHeuristicMask(bool clipTight = true) const

Crée et renvoie un masque heuristique pour ce pixmap.

La fonction fonctionne en sélectionnant une couleur dans l'un des coins et en éliminant les pixels de cette couleur, en commençant par tous les bords. Si clipTight est vrai (par défaut), le masque est juste assez grand pour couvrir les pixels ; sinon, le masque est plus grand que les pixels de données.

Le masque peut ne pas être parfait, mais il doit être raisonnable, de sorte que vous puissiez faire des choses comme celles qui suivent :

QPixmap myPixmap;
myPixmap.setMask(myPixmap.createHeuristicMask());

Cette fonction est lente car elle implique une conversion vers/depuis QImage, ainsi que des calculs non triviaux.

Voir également QImage::createHeuristicMask() et createMaskFromColor().

QBitmap QPixmap::createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const

Crée et renvoie un masque pour cette pixmap en fonction de l'adresse maskColor. Si mode est Qt::MaskInColor, tous les pixels correspondant à maskColor seront transparents. Si mode est Qt::MaskOutColor, tous les pixels correspondant à la couleur du masque seront opaques.

Cette fonction est lente car elle implique une conversion vers/depuis QImage.

Voir aussi createHeuristicMask() et QImage::createMaskFromColor().

[static] int QPixmap::defaultDepth()

Renvoie la profondeur de pixmap par défaut utilisée par l'application.

Sur toutes les plateformes, c'est la profondeur de l'écran principal qui est renvoyée.

Remarque : QGuiApplication doit être créé avant d'appeler cette fonction.

Voir également depth() et Pixmap Information.

int QPixmap::depth() const

Renvoie la profondeur de la pixmap.

La profondeur de la pixmap est également appelée bits par pixel (bpp) ou plans de bits d'une pixmap. Une pixmap nulle a une profondeur de 0.

Voir aussi defaultDepth() et Pixmap Information.

void QPixmap::detach()

Détache le pixmap des données de pixmap partagées.

Une pixmap est automatiquement détachée par Qt lorsque son contenu est sur le point de changer. Cela se fait dans presque toutes les fonctions membres de QPixmap qui modifient la pixmap (fill(), fromImage(), load(), etc.), et dans QPainter::begin() sur une pixmap.

Il y a deux exceptions pour lesquelles detach() doit être appelé explicitement, à savoir lors de l'appel de la fonction handle() ou de la fonction x11PictureHandle() (uniquement disponible sur X11). Sinon, toute modification effectuée à l'aide des appels système sera effectuée sur les données partagées.

La fonction detach() retourne immédiatement s'il n'y a qu'une seule référence ou si la pixmap n'a pas encore été initialisée.

[since 6.2] QSizeF QPixmap::deviceIndependentSize() const

Renvoie la taille de la pixmap en pixels indépendants du périphérique.

Cette valeur doit être utilisée lorsque la taille du pixmap est utilisée pour calculer la taille de l'interface utilisateur.

La valeur de retour est équivalente à pixmap.size() / pixmap.devicePixelRatio().

Cette fonction a été introduite dans Qt 6.2.

qreal QPixmap::devicePixelRatio() const

Renvoie le rapport entre les pixels du périphérique et les pixels indépendants du périphérique pour la table des matières. Il s'agit du rapport entre les pixels du périphérique et les pixels indépendants du périphérique.

Utilisez cette fonction pour calculer la géométrie de la disposition en fonction de la taille de la pixmap : QSize layoutSize = image.size() / image.devicePixelRatio()

La valeur par défaut est 1,0.

Voir également setDevicePixelRatio() et QImageReader.

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

Remplit la pixmap avec la valeur donnée color.

L'effet de cette fonction est indéfini lorsque la pixmap est peinte.

Voir aussi Pixmap Transformations.

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

Convertit le fichier image en pixmap en utilisant l'argument flags pour contrôler la conversion. L'argument flags est un OU bit à bit de l'argument Qt::ImageConversionFlags. En passant 0 pour flags, toutes les options par défaut sont activées.

Dans le cas d'images monochromes et 8 bits, l'image est d'abord convertie en pixmap 32 bits, puis remplie avec les couleurs de la table des couleurs. Si cette opération est trop coûteuse, vous pouvez utiliser QBitmap::fromImage() à la place.

Voir également fromImageReader(), toImage() et Pixmap Conversion.

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

Convertit le fichier image en pixmap sans le copier si possible.

Il s'agit d'une fonction surchargée.

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

Créer un QPixmap à partir d'une image lue directement sur imageReader. L'argument flags est un OU bit à bit de Qt::ImageConversionFlags. Passer 0 pour flags définit toutes les options par défaut.

Sur certains systèmes, la lecture d'une image directement à QPixmap peut utiliser moins de mémoire que la lecture d'une image à QImage pour la convertir à QPixmap.

Voir également fromImage(), toImage() et Pixmap Conversion.

bool QPixmap::hasAlpha() const

Renvoie true si cette pixmap possède un canal alpha ou un masque, sinon renvoie false.

Voir aussi hasAlphaChannel() et mask().

bool QPixmap::hasAlphaChannel() const

Renvoie true si la pixmap a un format qui respecte le canal alpha, sinon renvoie false.

Voir aussi hasAlpha().

int QPixmap::height() const

Renvoie la hauteur de la pixmap.

Voir aussi size() et Pixmap Information.

bool QPixmap::isNull() const

Renvoie true s'il s'agit d'une pixmap nulle ; sinon, il renvoie false.

Un pixmap nul a une largeur et une hauteur nulles et n'a pas de contenu. Vous ne pouvez pas dessiner dans une pixmap nulle.

bool QPixmap::isQBitmap() const

Renvoie true s'il s'agit d'un QBitmap; sinon, renvoie false.

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

Charge un pixmap à partir du fichier avec l'adresse fileName. Retourne vrai si la pixmap a été chargée avec succès ; sinon, invalide la pixmap et retourne false.

Le chargeur tente de lire la pixmap à l'aide de l'adresse format. Si format n'est pas spécifié (ce qui est le cas par défaut), le chargeur recherche dans le fichier un en-tête permettant de deviner le format du fichier.

Le nom du fichier peut faire référence soit à un fichier réel sur le disque, soit à l'une des ressources intégrées de l'application. Voir la vue d'ensemble du système de ressources pour plus de détails sur la manière d'incorporer des pixmaps et d'autres fichiers de ressources dans l'exécutable de l'application.

Si les données doivent être modifiées pour s'intégrer dans un résultat de résolution inférieure (par exemple, conversion de 32 bits en 8 bits), utilisez le site flags pour contrôler la conversion.

Notez que les QPixmaps sont automatiquement ajoutées à QPixmapCache lorsqu'elles sont chargées à partir d'un fichier dans le thread principal ; la clé utilisée est interne et ne peut pas être acquise.

Voir également loadFromData() et Reading and Writing Image Files.

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

Charge un pixmap à partir des len premiers octets du fichier binaire donné data. Retourne true si la pixmap a été chargée avec succès ; sinon, invalide la pixmap et retourne false.

Le chargeur tente de lire la pixmap à l'aide de l'adresse format spécifiée. Si format n'est pas spécifié (ce qui est le cas par défaut), le chargeur recherche dans le fichier un en-tête permettant de deviner le format du fichier.

Si les données doivent être modifiées pour être intégrées dans un résultat de résolution inférieure (par exemple, conversion de 32 bits en 8 bits), utilisez flags pour contrôler la conversion.

Voir également load() et Reading and Writing Image Files.

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

Charge un pixmap à partir du fichier binaire data en utilisant le fichier spécifié format et la conversion flags.

Il s'agit d'une fonction surchargée.

QBitmap QPixmap::mask() const

Extrait un masque bitmap à partir du canal alpha de la pixmap.

Attention : Cette opération est potentiellement coûteuse. Le masque de la pixmap est extrait dynamiquement des données de la pixellisation.

Voir aussi setMask() et Pixmap Information.

QRect QPixmap::rect() const

Renvoie le rectangle englobant de la pixmap.

Voir aussi Pixmap Information.

bool QPixmap::save(const QString &fileName, const char *format = nullptr, int quality = -1) const

Enregistre la pixmap dans le fichier avec l'adresse fileName en utilisant le fichier image spécifié format et le facteur quality. Renvoie true en cas de succès, sinon false.

Le facteur quality doit être compris dans l'intervalle [0,100] ou -1. Spécifiez 0 pour obtenir de petits fichiers compressés, 100 pour de grands fichiers non compressés et -1 pour utiliser les paramètres par défaut.

Si format est nullptr, un format d'image sera choisi à partir du suffixe fileName.

Voir aussi Reading and Writing Image Files.

bool QPixmap::save(QIODevice *device, const char *format = nullptr, int quality = -1) const

Cette fonction écrit un QPixmap dans le device donné en utilisant le fichier image spécifié format et le facteur quality. Elle peut être utilisée, par exemple, pour enregistrer une image directement dans un fichier QByteArray:

QPixmap pixmap;
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format

Il s'agit d'une fonction surchargée.

QPixmap QPixmap::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

Met à l'échelle la pixmap en fonction de l'adresse size, en utilisant le rapport d'aspect et les modes de transformation spécifiés par aspectRatioMode et transformMode.

  • Si aspectRatioMode est Qt::IgnoreAspectRatio, la pixmap est mise à l'échelle de size.
  • Si aspectRatioMode est Qt::KeepAspectRatio, la pixmap est mise à l'échelle d'un rectangle aussi grand que possible à l'intérieur de size, en préservant le rapport hauteur/largeur.
  • Si aspectRatioMode est Qt::KeepAspectRatioByExpanding, la pixmap est redimensionnée en un rectangle aussi petit que possible à l'extérieur de size, en préservant le rapport hauteur/largeur.

Si size est vide, cette fonction renvoie une pixmap nulle.

Dans certains cas, il peut être plus avantageux de dessiner la pixmap vers un peintre avec une échelle définie plutôt que de mettre la pixmap à l'échelle. C'est le cas lorsque le peintre est par exemple basé sur OpenGL ou lorsque le facteur d'échelle change rapidement.

Voir aussi isNull() et Pixmap Transformations.

QPixmap QPixmap::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

Renvoie une copie de la pixmap mise à l'échelle d'un rectangle avec les données width et height selon les données aspectRatioMode et transformMode.

Si width ou height est nul ou négatif, cette fonction renvoie une pixmap nulle.

Il s'agit d'une fonction surchargée.

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

Renvoie une copie à l'échelle de l'image. L'image renvoyée est mise à l'échelle sur le site height à l'aide de la transformation spécifiée mode. La largeur de la pixmap est automatiquement calculée afin que le rapport hauteur/largeur de la pixmap soit préservé.

Si height est égal à 0 ou négatif, une image pixmap nulle est renvoyée.

Voir aussi isNull() et Pixmap Transformations.

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

Renvoie une copie à l'échelle de l'image. L'image renvoyée est mise à l'échelle sur le site width à l'aide de la transformation spécifiée mode. La hauteur de la pixmap est automatiquement calculée afin que le rapport hauteur/largeur de la pixmap soit préservé.

Si width est égal à 0 ou négatif, une image pixmap nulle est renvoyée.

Voir aussi isNull() et Pixmap Transformations.

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

Fait défiler la zone rect de cette pixmap de (dx, dy). La région exposée reste inchangée. Vous pouvez optionnellement passer un pointeur sur un QRegion vide pour obtenir la région qui est exposed par l'opération de défilement.

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

Il n'est pas possible de faire défiler une image lorsqu'un peintre est actif sur la pixmap.

Voir aussi QWidget::scroll() et QGraphicsItem::scroll().

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

Cette fonction de commodité équivaut à appeler QPixmap::scroll(dx, dy, QRect(x, y, width, height), exposed).

Voir aussi QWidget::scroll() et QGraphicsItem::scroll().

void QPixmap::setDevicePixelRatio(qreal scaleFactor)

Définit le ratio de pixels du périphérique pour la pixmap. Il s'agit du rapport entre les pixels de l'image et les pixels indépendants du périphérique.

La valeur par défaut de scaleFactor est 1,0. La définition d'une autre valeur a deux effets :

Les QPainters ouverts sur la pixmap seront mis à l'échelle. Par exemple, peindre sur une image de 200x200 avec un ratio de 2.0 donnera des limites de peinture effectives (indépendantes du périphérique) de 100x100.

Les chemins de code dans Qt XML qui calculent la géométrie de la disposition en fonction de la taille de la pixmap prendront le ratio en compte : QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() L'effet net de ceci est que la pixmap est affichée en tant que pixmap à haut DPI plutôt qu'en tant que pixmap de grande taille (voir Drawing High Resolution Versions of Pixmaps and Images).

Voir également devicePixelRatio() et deviceIndependentSize().

void QPixmap::setMask(const QBitmap &mask)

Définit un masque bitmap.

Cette fonction fusionne le site mask avec le canal alpha du pixmap. Une valeur de 1 sur le masque signifie que le pixel de la pixmap est inchangé ; une valeur de 0 signifie que le pixel est transparent. Le masque doit avoir la même taille que la pixmap.

La définition d'un masque nul réinitialise le masque, laissant les pixels précédemment transparents en noir. L'effet de cette fonction n'est pas défini lorsque la pixmap est peinte.

Attention : Il s'agit d'une opération potentiellement coûteuse.

Voir aussi mask(), Pixmap Transformations, et QBitmap.

QSize QPixmap::size() const

Renvoie la taille de la pixmap.

Voir aussi width(), height(), et Pixmap Information.

[noexcept] void QPixmap::swap(QPixmap &other)

Remplace cette image par other. Cette opération est très rapide et n'échoue jamais.

QImage QPixmap::toImage() const

Convertit la pixmap en QImage. Renvoie une image nulle si la conversion échoue.

Si la pixmap a une profondeur de 1 bit, l'image renvoyée aura également une profondeur de 1 bit. Les images comportant plus de bits seront renvoyées dans un format représentant étroitement le système sous-jacent. En général, il s'agira de QImage::Format_ARGB32_Premultiplied pour les pixmaps avec un alpha et de QImage::Format_RGB32 ou QImage::Format_RGB16 pour les pixmaps sans alpha.

Notez que pour l'instant, les masques alpha sur les images monochromes sont ignorés.

Voir aussi fromImage() et Image Formats.

QPixmap QPixmap::transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const

Renvoie une copie de la pixmap transformée à l'aide de la transformation transform et de la transformation mode. La pixmap d'origine n'est pas modifiée.

La transformation transform est ajustée en interne pour compenser les translations non désirées ; c'est-à-dire que la pixmap produite est la plus petite pixmap qui contient tous les points transformés de la pixmap d'origine. Utilisez la fonction trueMatrix() pour récupérer la matrice réelle utilisée pour transformer la pixmap.

Cette fonction est lente car elle implique une transformation vers QImage, des calculs non triviaux et une retransformation vers QPixmap.

Voir également trueMatrix() et Pixmap Transformations.

[static] QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)

Renvoie la matrice utilisée pour la transformation d'une image de pixel avec les données width, height et matrix.

Lors de la transformation d'une image de pixel à l'aide de la fonction transformed(), la matrice de transformation est ajustée en interne pour compenser les translations indésirables, c'est-à-dire que transformed() renvoie la plus petite image de pixel contenant tous les points transformés de l'image de pixel d'origine. Cette fonction renvoie la matrice modifiée, qui traduit correctement les points de la pixmap d'origine dans la nouvelle pixmap.

Voir également transformed() et Pixmap Transformations.

int QPixmap::width() const

Renvoie la largeur de la pixmap.

Voir aussi size() et Pixmap Information.

QPixmap::operator QVariant() const

Retourne la pixmap sous forme de QVariant.

bool QPixmap::operator!() const

Renvoie true s'il s'agit d'une pixmap nulle ; sinon, renvoie false.

Voir aussi isNull().

[noexcept] QPixmap &QPixmap::operator=(QPixmap &&other)

Move-assigne other à cette instance QPixmap.

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

Attribue la valeur pixmap à ce pixmap et renvoie une référence à ce pixmap.

Voir aussi copy() et QPixmap().

Non-membres apparentés

QDataStream &operator<<(QDataStream &stream, const QPixmap &pixmap)

Écrit le fichier pixmap dans le fichier stream sous la forme d'une image PNG. Notez que l'écriture du flux dans un fichier ne produira pas un fichier image valide.

Voir aussi QPixmap::save() et Serializing Qt Data Types.

QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)

Lit une image à partir de l'adresse stream dans l'adresse pixmap.

Voir aussi QPixmap::load() et Serializing Qt Data Types.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.