Sur cette page

QImage Class

La classe QImage fournit une représentation d'image indépendante du matériel qui permet un accès direct aux données des pixels et peut être utilisée comme périphérique de peinture. Plus d'informations...

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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum Format { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, Format_RGB32, …, Format_CMYK8888 }
enum InvertMode { InvertRgb, InvertRgba }

Fonctions publiques

QImage()
QImage(const char *const[] xpm)
QImage(const QSize &size, QImage::Format format)
QImage(const QString &fileName, const char *format = nullptr)
QImage(int width, int height, QImage::Format format)
QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(const QImage &image)
QImage(QImage &&other)
virtual ~QImage()
bool allGray() const
void applyColorTransform(const QColorTransform &transform)
(since 6.8) void applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor)
int bitPlaneCount() const
uchar *bits()
const uchar *bits() const
qsizetype bytesPerLine() const
qint64 cacheKey() const
QRgb color(int i) const
int colorCount() const
QColorSpace colorSpace() const
QList<QRgb> colorTable() const
(since 6.4) QImage colorTransformed(const QColorTransform &transform) const &
(since 6.8) QImage colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
(since 6.4) QImage colorTransformed(const QColorTransform &transform) &&
(since 6.8) QImage colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
const uchar *constBits() const
const uchar *constScanLine(int i) const
void convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
void convertToColorSpace(const QColorSpace &colorSpace)
(since 6.8) void convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
QImage convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
QImage convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const
(since 6.0) QImage convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
(since 6.0) QImage convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage convertedToColorSpace(const QColorSpace &colorSpace) const
(since 6.8) QImage convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
(since 6.8) QImage convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage copy(const QRect &rectangle = QRect()) const
QImage copy(int x, int y, int width, int height) const
QImage createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const
QImage createHeuristicMask(bool clipTight = true) const
QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const
int depth() const
(since 6.2) QSizeF deviceIndependentSize() const
qreal devicePixelRatio() const
int dotsPerMeterX() const
int dotsPerMeterY() const
void fill(uint pixelValue)
void fill(Qt::GlobalColor color)
void fill(const QColor &color)
(since 6.9) void flip(Qt::Orientations orient = Qt::Vertical)
(since 6.9) QImage flipped(Qt::Orientations orient = Qt::Vertical) &&
(since 6.9) QImage flipped(Qt::Orientations orient = Qt::Vertical) const &
QImage::Format format() const
bool hasAlphaChannel() const
int height() const
void invertPixels(QImage::InvertMode mode = InvertRgb)
bool isGrayscale() const
bool isNull() const
bool load(const QString &fileName, const char *format = nullptr)
bool load(QIODevice *device, const char *format)
(since 6.2) bool loadFromData(QByteArrayView data, const char *format = nullptr)
bool loadFromData(const QByteArray &data, const char *format = nullptr)
bool loadFromData(const uchar *data, int len, const char *format = nullptr)
(since 6.0, until 6.13) void mirror(bool horizontal = false, bool vertical = true)
(until 6.13) QImage mirrored(bool horizontal = false, bool vertical = true) &&
(until 6.13) QImage mirrored(bool horizontal = false, bool vertical = true) const &
QPoint offset() const
QRgb pixel(const QPoint &position) const
QRgb pixel(int x, int y) const
QColor pixelColor(const QPoint &position) const
QColor pixelColor(int x, int y) const
QPixelFormat pixelFormat() const
int pixelIndex(const QPoint &position) const
int pixelIndex(int x, int y) const
QRect rect() const
bool reinterpretAsFormat(QImage::Format format)
(since 6.0) void rgbSwap()
QImage rgbSwapped() &&
QImage rgbSwapped() 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
QImage scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QImage scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QImage scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
QImage scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
uchar *scanLine(int i)
const uchar *scanLine(int i) const
void setAlphaChannel(const QImage &alphaChannel)
void setColor(int index, QRgb colorValue)
void setColorCount(int colorCount)
void setColorSpace(const QColorSpace &colorSpace)
void setColorTable(const QList<QRgb> &colors)
void setDevicePixelRatio(qreal scaleFactor)
void setDotsPerMeterX(int x)
void setDotsPerMeterY(int y)
void setOffset(const QPoint &offset)
void setPixel(const QPoint &position, uint index_or_rgb)
void setPixel(int x, int y, uint index_or_rgb)
void setPixelColor(const QPoint &position, const QColor &color)
void setPixelColor(int x, int y, const QColor &color)
void setText(const QString &key, const QString &text)
QSize size() const
qsizetype sizeInBytes() const
void swap(QImage &other)
QString text(const QString &key = QString()) const
QStringList textKeys() const
CGImageRef toCGImage() const
(since 6.0) HBITMAP toHBITMAP() const
(since 6.0) HICON toHICON(const QImage &mask = {}) const
QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
bool valid(const QPoint &pos) const
bool valid(int x, int y) const
int width() const
operator QVariant() const
bool operator!=(const QImage &image) const
QImage &operator=(QImage &&other)
QImage &operator=(const QImage &image)
bool operator==(const QImage &image) const

Membres publics statiques

(since 6.2) QImage fromData(QByteArrayView data, const char *format = nullptr)
QImage fromData(const QByteArray &data, const char *format = nullptr)
QImage fromData(const uchar *data, int size, const char *format = nullptr)
(since 6.0) QImage fromHBITMAP(HBITMAP hbitmap)
(since 6.0) QImage fromHICON( icône HICON)
QImage::Format toImageFormat( Format QPixelFormat)
QPixelFormat toPixelFormat(QImage::Format format)
QTransform trueMatrix(const QTransform &matrix, int width, int height)
QImageCleanupFunction
QDataStream &operator<<(QDataStream &stream, const QImage &image)
QDataStream &operator>>(QDataStream &stream, QImage &image)

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 afficher des images à l'écran. QBitmap n'est qu'une classe de commodité qui hérite de QPixmap, garantissant une profondeur de 1. Enfin, la classe QPicture est un dispositif de peinture qui enregistre et rejoue les commandes de QPainter.

QImage étant une sous-classe de QPaintDevice, QPainter peut être utilisé pour dessiner directement sur des images. Lorsque vous utilisez QPainter sur une QImage, la peinture peut être réalisée dans un autre thread que celui de l'interface graphique en cours.

La classe QImage prend en charge plusieurs formats d'image décrits par l'enum Format. Il s'agit notamment d'images monochromes, 8 bits, 32 bits et alpha-blended qui sont disponibles dans toutes les versions de Qt 4.x.

QImage fournit une collection de fonctions qui peuvent être utilisées pour obtenir une variété d'informations sur l'image. Plusieurs fonctions permettent également de transformer l'image.

Les objets QImage peuvent être transmis par valeur puisque la classe QImage utilise le partage implicite des données. Les objets QImage peuvent également être transmis en continu et comparés.

Remarque : si vous souhaitez charger des objets QImage dans une version statique de Qt, reportez-vous à l'aide en ligne Plugin HowTo.

Attention : La peinture sur une QImage au format QImage::Format_Indexed8 ou QImage::Format_CMYK8888 n'est pas prise en charge.

Lecture et écriture de fichiers d'images

QImage propose plusieurs façons de charger un fichier image : Le fichier peut être chargé lors de la construction de l'objet QImage, ou en utilisant les fonctions load() ou loadFromData() ultérieurement. QImage fournit également la fonction statique fromData(), qui construit une QImage à partir des données fournies. 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 QImage.

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
GIFFormat d'échange graphique (optionnel)Lire
JPGGroupe mixte d'experts en photographieLecture/écriture
JPEGGroupe mixte d'experts en photographieLecture/écriture
PNGGraphique de réseau portableLecture/écriture
PBMBitmap portableLecture
PGMCarte grise portableLire
PPMPixmap portableLecture/écriture
XBMBitmap X11Lecture/écriture
XPMX11 PixmapLecture/écriture

Informations sur l'image

QImage fournit une collection de fonctions qui peuvent être utilisées pour obtenir une variété d'informations sur l'image :

Fonctions disponibles
GéométrieLes fonctions size(), width(), height(), dotsPerMeterX() et dotsPerMeterY() fournissent des informations sur la taille et le format de l'image.

La fonction rect() renvoie le rectangle englobant de l'image. La fonction valid() indique si une paire de coordonnées donnée se trouve à l'intérieur de ce rectangle. La fonction offset() renvoie le nombre de pixels dont l'image est censée être décalée lorsqu'elle est positionnée par rapport à d'autres images, qui peuvent également être manipulées à l'aide de la fonction setOffset().

CouleursLa couleur d'un pixel peut être récupérée en passant ses coordonnées à la fonction pixel(). La fonction pixel() renvoie la couleur sous la forme d'une valeur QRgb indépendante du format de l'image.

Dans le cas d'images monochromes et 8 bits, les fonctions colorCount() et colorTable() fournissent des informations sur les composantes de couleur utilisées pour stocker les données de l'image : La fonction colorTable() renvoie la table des couleurs complète de l'image. Pour obtenir une seule entrée, utilisez la fonction pixelIndex() pour récupérer l'indice de pixel pour une paire de coordonnées donnée, puis utilisez la fonction color() pour récupérer la couleur. Notez que si vous créez une image 8 bits manuellement, vous devez également définir une table de couleurs valide sur l'image.

La fonction hasAlphaChannel() indique si le format de l'image respecte ou non le canal alpha. Les fonctions allGray() et isGrayscale() indiquent si les couleurs d'une image sont toutes des nuances de gris.

Voir également les sections Pixel Manipulation et Image Transformations.

TexteLa fonction text() renvoie le texte de l'image associé à la clé de texte donnée. Les clés de texte d'une image peuvent être récupérées à l'aide de la fonction textKeys(). La fonction setText() permet de modifier le texte d'une image.
Informations de bas niveauLa fonction depth() renvoie la profondeur de l'image. Les profondeurs supportées sont 1 (monochrome), 8, 16, 24 et 32 bits. La fonction bitPlaneCount() indique le nombre de bits utilisés. Pour plus d'informations, voir la section Image Formats.

Les fonctions format(), bytesPerLine() et sizeInBytes() fournissent des informations de bas niveau sur les données stockées dans l'image.

La fonction cacheKey() renvoie un nombre qui identifie de manière unique le contenu de cet objet QImage.

Manipulation des pixels

Les fonctions utilisées pour manipuler les pixels d'une image dépendent du format de l'image. En effet, les images monochromes et 8 bits sont basées sur un index et utilisent une table de correspondance des couleurs, tandis que les images 32 bits stockent directement les valeurs ARGB. Pour plus d'informations sur les formats d'image, voir la section Image Formats.

Dans le cas d'une image 32 bits, la fonction setPixel() peut être utilisée pour modifier la couleur du pixel aux coordonnées données en toute autre couleur spécifiée sous la forme d'un quadruplet ARGB. Pour créer une valeur QRgb appropriée, utilisez la fonction qRgb() (qui ajoute une composante alpha par défaut aux valeurs RVB données, c'est-à-dire qui crée une couleur opaque) ou qRgba(). En voici un exemple :

32 bits
QImage image(3, 3, QImage::Format_RGB32);
QRgb value;

value = qRgb(189, 149, 39); // 0xffbd9527
image.setPixel(1, 1, value);

value = qRgb(122, 163, 39); // 0xff7aa327
image.setPixel(0, 1, value);
image.setPixel(1, 0, value);

value = qRgb(237, 187, 51); // 0xffedba31
image.setPixel(2, 1, value);

Dans le cas d'une image 8 bits ou monochrome, la valeur du pixel n'est qu'un index de la table des couleurs de l'image. La fonction setPixel() ne peut donc être utilisée que pour modifier la couleur du pixel aux coordonnées données en une couleur prédéfinie de la table des couleurs de l'image, c'est-à-dire qu'elle ne peut modifier que la valeur de l'index du pixel. Pour modifier ou ajouter une couleur à la table des couleurs d'une image, utilisez la fonction setColor().

Une entrée dans la table des couleurs est un quadruplet ARGB codé sous la forme d'une valeur QRgb. Utilisez les fonctions qRgb() et qRgba() pour créer une valeur QRgb appropriée à utiliser avec la fonction setColor(). Par exemple :

8-bit
QImage image(3, 3, QImage::Format_Indexed8);
QRgb value;

value = qRgb(122, 163, 39); // 0xff7aa327
image.setColor(0, value);

value = qRgb(237, 187, 51); // 0xffedba31
image.setColor(1, value);

value = qRgb(189, 149, 39); // 0xffbd9527
image.setColor(2, value);

image.setPixel(0, 1, 0);
image.setPixel(1, 0, 0);
image.setPixel(1, 1, 2);
image.setPixel(2, 1, 1);

Pour les images avec plus de 8 bits par canal de couleur. Les méthodes setPixelColor() et pixelColor() peuvent être utilisées pour définir et obtenir des valeurs QColor.

QImage fournit également la fonction scanLine() qui renvoie un pointeur sur les données du pixel à la ligne de balayage avec l'index donné, et la fonction bits() qui renvoie un pointeur sur les premières données du pixel (c'est équivalent à scanLine(0)).

Formats d'image

Chaque pixel stocké dans une QImage est représenté par un entier. La taille de l'entier varie en fonction du format. QImage prend en charge plusieurs formats d'image décrits par l'enum Format.

Les images monochromes sont stockées à l'aide d'index de 1 bit dans une table de couleurs comportant au maximum deux couleurs. Il existe deux types d'images monochromes : big endian (MSB en premier) ou little endian (LSB en premier).

Les images 8 bits sont stockées à l'aide d'index 8 bits dans une table de couleurs, c'est-à-dire qu'elles ont un seul octet par pixel. La table des couleurs est un QList<QRgb>, et le typedef QRgb est équivalent à un unsigned int contenant un quadruplet ARGB au format 0xAARRGGBB.

Les images 32 bits n'ont pas de table des couleurs ; à la place, chaque pixel contient une valeur QRgb. Il existe trois types différents d'images 32 bits stockant respectivement des valeurs RVB (c'est-à-dire 0xffRRGGBB), ARGB et ARGB prémultipliées. Dans le format prémultiplié, les canaux rouge, vert et bleu sont multipliés par la composante alpha divisée par 255.

Le format d'une image peut être récupéré à l'aide de la fonction format(). Les fonctions convertToFormat() permettent de convertir une image dans un autre format. Les fonctions allGray() et isGrayscale() indiquent si une image couleur peut être convertie en toute sécurité en une image en niveaux de gris.

Transformations d'images

QImage prend en charge un certain nombre de fonctions permettant de créer une nouvelle image qui est une version transformée de l'originale : La fonction createAlphaMask() construit et renvoie un masque 1-bpp à partir du tampon alpha de cette image, et la fonction createHeuristicMask() crée et renvoie un masque heuristique 1-bpp pour cette image. Cette dernière fonction sélectionne une couleur dans l'un des coins, puis élimine les pixels de cette couleur en commençant par tous les bords.

La fonction mirrored() renvoie un miroir de l'image dans la direction souhaitée, la fonction scaled() renvoie une copie de l'image à l'échelle d'un rectangle des mesures souhaitées, et la fonction rgbSwapped() construit une image BGR à partir d'une image RGB.

Les fonctions scaledToWidth() et scaledToHeight() renvoient des copies mises à l'échelle de l'image.

La fonction transformed() renvoie une copie de l'image 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 image contenant tous les points transformés de l'image originale. La fonction statique trueMatrix() renvoie la matrice utilisée pour transformer l'image.

Il existe également des fonctions permettant de modifier les attributs d'une image sur place :

FonctionDescription de la fonction
setDotsPerMeterX()Définit le rapport hauteur/largeur en fixant le nombre de pixels qui tiennent horizontalement dans un mètre physique.
setDotsPerMeterY()Définit le rapport d'aspect en définissant le nombre de pixels qui tiennent verticalement dans un mètre physique.
fill()Remplit toute l'image avec la valeur de pixel donnée.
invertPixels()Inverse toutes les valeurs de pixels de l'image en utilisant la valeur InvertMode donnée.
setColorTable()Définit la table des couleurs utilisée pour traduire les indices de couleur. Uniquement pour les formats monochromes et 8 bits.
setColorCount()Redimensionne la table des couleurs. Uniquement pour les formats monochromes et 8 bits.

Voir également QImageReader, QImageWriter, QPixmap, QSvgRenderer, Exemple de composition d'image et Exemple de gribouillage.

Documentation sur les types de membres

enum QImage::Format

Les formats d'image suivants sont disponibles dans Qt Image Formats. Voir les notes après le tableau.

ConstanteValeurDescription de l'image
QImage::Format_Invalid0L'image n'est pas valide.
QImage::Format_Mono1L'image est stockée en utilisant 1 bit par pixel. Les octets sont emballés avec le bit le plus significatif (MSB) en premier.
QImage::Format_MonoLSB2L'image est stockée sur 1 bit par pixel. Les octets sont emballés avec le bit le moins significatif (LSB) en premier.
QImage::Format_Indexed83L'image est stockée en utilisant des index de 8 bits dans une carte de couleurs.
QImage::Format_RGB324L'image est stockée au format RVB 32 bits (0xffRRGGBB).
QImage::Format_ARGB325L'image est stockée dans un format ARGB 32 bits (0xAARRGGBB).
QImage::Format_ARGB32_Premultiplied6L'image est stockée dans un format ARGB 32 bits prémultiplié (0xAARRGGBB), c'est-à-dire que les canaux rouge, vert et bleu sont multipliés par la composante alpha divisée par 255. (Si RR, GG ou BB a une valeur supérieure à celle du canal alpha, les résultats sont indéfinis). Certaines opérations (telles que la composition d'images à l'aide d'un mélange alpha) sont plus rapides avec l'ARGB32 prémultiplié qu'avec l'ARGB32 normal.
QImage::Format_RGB167L'image est stockée au format RVB 16 bits (5-6-5).
QImage::Format_ARGB8565_Premultiplied8L'image est stockée dans un format ARGB 24 bits prémultiplié (8-5-6-5).
QImage::Format_RGB6669L'image est stockée dans un format RVB 24 bits (6-6-6). Les bits de poids fort non utilisés sont toujours à zéro.
QImage::Format_ARGB6666_Premultiplied10L'image est stockée dans un format ARGB 24 bits prémultiplié (6-6-6-6).
QImage::Format_RGB55511L'image est stockée au format RVB 16 bits (5-5-5). Le bit de poids fort non utilisé est toujours égal à zéro.
QImage::Format_ARGB8555_Premultiplied12L'image est stockée dans un format ARGB 24 bits prémultiplié (8-5-5-5).
QImage::Format_RGB88813L'image est stockée dans un format RVB 24 bits (8-8-8).
QImage::Format_RGB44414L'image est stockée dans un format RVB 16 bits (4-4-4). Les bits non utilisés sont toujours à zéro.
QImage::Format_ARGB4444_Premultiplied15L'image est stockée dans un format ARGB 16 bits prémultiplié (4-4-4-4).
QImage::Format_RGBX8888 (since Qt 5.2)16L'image est stockée dans un format RVB(x) 32 bits ordonné par octets (8-8-8-8). C'est la même chose que le Format_RGBA8888 sauf que l'alpha doit toujours être 255.
QImage::Format_RGBA8888 (since Qt 5.2)17L'image est stockée dans un format RGBA 32 bits ordonné par octets (8-8-8-8).
QImage::Format_RGBA8888_Premultiplied (since Qt 5.2)18L'image est stockée en utilisant un format RGBA prémultiplié de 32 bits ordonné par octets (8-8-8-8).
QImage::Format_BGR30 (since Qt 5.4)19L'image est stockée dans un format BGR 32 bits (x-10-10-10).
QImage::Format_A2BGR30_Premultiplied (since Qt 5.4)20L'image est stockée dans un format ABGR prémultiplié de 32 bits (2-10-10-10).
QImage::Format_RGB30 (since Qt 5.4)21L'image est stockée dans un format RVB 32 bits (x-10-10-10).
QImage::Format_A2RGB30_Premultiplied (since Qt 5.4)22L'image est stockée dans un format ARGB 32 bits prémultiplié (2-10-10-10).
QImage::Format_Alpha8 (since Qt 5.5)23L'image est stockée dans un format alpha 8 bits.
QImage::Format_Grayscale8 (since Qt 5.5)24L'image est stockée dans un format d'échelle de gris 8 bits.
QImage::Format_Grayscale16 (since Qt 5.13)28L'image est stockée dans un format d'échelle de gris de 16 bits.
QImage::Format_RGBX64 (since Qt 5.12)25L'image est stockée dans un format RVB(x) 64 bits ordonné par demi-mots (16-16-16-16). C'est la même chose que Format_RGBA64, sauf que l'alpha doit toujours être égal à 65535.
QImage::Format_RGBA64 (since Qt 5.12)26L'image est stockée dans un format RGBA 64 bits ordonné par moitié (16-16-16-16).
QImage::Format_RGBA64_Premultiplied (since Qt 5.12)27L'image est stockée en utilisant un format RGBA prémultiplié de 64 bits, ordonné par moitié (16-16-16-16).
QImage::Format_BGR888 (since Qt 5.14)29L'image est stockée dans un format BGR 24 bits.
QImage::Format_RGBX16FPx4 (since Qt 6.2)30L'image est stockée dans un format RVBx à quatre demi-mots flottants de 16 bits (16FP-16FP-16FP-16FP). Il s'agit du même format que le Format_RGBA16FPx4, à l'exception de l'alpha qui doit toujours être égal à 1,0.
QImage::Format_RGBA16FPx4 (since Qt 6.2)31L'image est stockée dans un format RGBA à quatre demi-mots flottants de 16 bits (16FP-16FP-16FP-16FP).
QImage::Format_RGBA16FPx4_Premultiplied (since Qt 6.2)32L'image est stockée en utilisant un format RGBA prémultiplié de quatre demi-mots flottants de 16 bits (16FP-16FP-16FP-16FP).
QImage::Format_RGBX32FPx4 (since Qt 6.2)33L'image est stockée dans un format RVBx à quatre mots flottants de 32 bits (32FP-32FP-32FP-32FP). Il s'agit du même format que Format_RGBA32FPx4, à l'exception de l'alpha qui doit toujours être égal à 1,0.
QImage::Format_RGBA32FPx4 (since Qt 6.2)34L'image est stockée dans un format RGBA à quatre points flottants de 32 bits (32FP-32FP-32FP-32FP).
QImage::Format_RGBA32FPx4_Premultiplied (since Qt 6.2)35L'image est stockée en utilisant un format RGBA prémultiplié à quatre points flottants de 32 bits (32FP-32FP-32FP-32FP).
QImage::Format_CMYK8888 (since Qt 6.8)36L'image est stockée dans un format CMJN 32 bits ordonné par octets.

Les formats ordonnés par octet ont un QPixelFormat::typeInterpretation() de QPixelFormat::UnsignedByte, ce qui signifie que les composants de couleur individuels sont stockés en mémoire dans un ordre fixe, par exemple 0xRR, 0xGG, 0xBB, 0xAA, indépendamment de l'endiannesse de la plate-forme. Ces formats doivent être lus comme des octets individuels, ou interprétés comme QPixelFormat::BigEndian s'ils sont lus en gros morceaux.

Note : Dessiner dans un QImage avec le format QImage::Format_Indexed8 ou QImage::Format_CMYK8888 n'est pas supporté.

Remarque : évitez la plupart des rendus directs vers la plupart de ces formats en utilisant QPainter. Le rendu est optimisé pour les formats Format_RGB32 et Format_ARGB32_Premultiplied, et accessoirement pour les formats Format_RGB16, Format_RGBX8888, Format_RGBA8888_Premultiplied, Format_RGBX64 et Format_RGBA64_Premultiplied.

Voir également format() et convertToFormat().

enum QImage::InvertMode

Ce type d'énumération est utilisé pour décrire comment les valeurs des pixels doivent être inversées dans la fonction invertPixels().

ConstanteValeurDescription
QImage::InvertRgb0Inverse uniquement les valeurs RVB et laisse le canal alpha inchangé.
QImage::InvertRgba1Inverse tous les canaux, y compris le canal alpha.

Voir également invertPixels().

Documentation des fonctions membres

[noexcept] QImage::QImage()

Construit une image nulle.

Voir aussi isNull().

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

Construit une image à partir de l'image xpm donnée.

Assurez-vous que l'image est une image XPM valide. Les erreurs sont ignorées silencieusement.

Notez qu'il est possible de réduire un peu 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 peut être stocké en ROM avec l'application.

QImage::QImage(const QSize &size, QImage::Format format)

Construit une image avec les données size et format.

Une image null est renvoyée si la mémoire ne peut être allouée.

Attention : Ceci créera une QImage avec des données non initialisées. Appelez fill() pour remplir l'image avec une valeur de pixel appropriée avant de dessiner dessus avec QPainter.

[explicit] QImage::QImage(const QString &fileName, const char *format = nullptr)

Construit une image et tente de charger l'image à partir du fichier avec l'adresse fileName.

Le chargeur tente de lire l'image à l'aide de l'adresse format. Si format n'est pas spécifié (ce qui est le cas par défaut), il est auto-détecté sur la base du suffixe et de l'en-tête du fichier. Pour plus de détails, voir {QImageReader::setAutoDetectImageFormat()}{QImageReader}.

Si le chargement de l'image a échoué, cet objet est une image nulle.

Le nom du fichier peut faire référence à un fichier réel sur le disque ou à 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.

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

QImage::QImage(int width, int height, QImage::Format format)

Construit une image avec les données width, height et format.

Une image null sera renvoyée si la mémoire ne peut être allouée.

Attention : Ceci créera une QImage avec des données non initialisées. Appelez fill() pour remplir l'image avec une valeur de pixel appropriée avant de dessiner dessus avec QPainter.

QImage::QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

Construit une image avec les données width, height et format, qui utilise un tampon de mémoire en lecture seule existant, data. Les adresses width et height doivent être spécifiées en pixels, data doit être aligné sur 32 bits et chaque ligne de balayage des données de l'image doit également être alignée sur 32 bits.

Le tampon doit rester valide pendant toute la durée de vie de l'image QImage et de toutes les copies qui n'ont pas été modifiées ou détachées du tampon d'origine. L'image ne supprime pas le tampon lors de sa destruction. Vous pouvez fournir un pointeur de fonction cleanupFunction ainsi qu'un pointeur supplémentaire cleanupInfo qui sera appelé lorsque la dernière copie sera détruite.

Si format est un format de couleur indexé, la table des couleurs de l'image est initialement vide et doit être suffisamment étendue avec setColorCount() ou setColorTable() avant que l'image ne soit utilisée.

Contrairement au constructeur similaire de QImage qui prend un tampon de données non-const, cette version ne modifiera jamais le contenu du tampon. Par exemple, l'appel à QImage::bits() renverra une copie profonde de l'image, plutôt que le tampon transmis au constructeur. Cela permet de construire efficacement une QImage à partir de données brutes, sans que celles-ci puissent être modifiées.

QImage::QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

Construit une image avec les données width, height et format, qui utilise un tampon de mémoire existant, data. Les adresses width et height doivent être spécifiées en pixels, data doit être aligné sur 32 bits et chaque ligne de balayage des données de l'image doit également être alignée sur 32 bits.

Le tampon doit rester valide pendant toute la durée de vie de l'image QImage et de toutes les copies qui n'ont pas été modifiées ou détachées du tampon d'origine. L'image ne supprime pas le tampon lors de sa destruction. Vous pouvez fournir un pointeur de fonction cleanupFunction ainsi qu'un pointeur supplémentaire cleanupInfo qui sera appelé lorsque la dernière copie sera détruite.

Si format est un format de couleur indexé, la table des couleurs de l'image est initialement vide et doit être suffisamment étendue avec setColorCount() ou setColorTable() avant que l'image ne soit utilisée.

QImage::QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

Construit une image avec les données width, height et format, qui utilise un tampon de mémoire existant, data. Les adresses width et height doivent être spécifiées en pixels. bytesPerLine spécifie le nombre d'octets par ligne (stride).

Le tampon doit rester valide pendant toute la durée de vie de l'image QImage et de toutes les copies qui n'ont pas été modifiées ou détachées du tampon d'origine. L'image ne supprime pas le tampon lors de sa destruction. Vous pouvez fournir un pointeur de fonction cleanupFunction ainsi qu'un pointeur supplémentaire cleanupInfo qui sera appelé lorsque la dernière copie sera détruite.

Si format est un format de couleur indexé, la table des couleurs de l'image est initialement vide et doit être suffisamment étendue avec setColorCount() ou setColorTable() avant que l'image ne soit utilisée.

Contrairement au constructeur similaire de QImage qui prend un tampon de données non-const, cette version ne modifiera jamais le contenu du tampon. Par exemple, l'appel à QImage::bits() renverra une copie profonde de l'image, plutôt que le tampon transmis au constructeur. Cela permet de construire efficacement une QImage à partir de données brutes, sans que celles-ci puissent être modifiées.

QImage::QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

Construit une image avec les données width, height et format, qui utilise un tampon de mémoire existant, data. Les adresses width et height doivent être spécifiées en pixels. bytesPerLine spécifie le nombre d'octets par ligne (stride).

Le tampon doit rester valide pendant toute la durée de vie de l'image QImage et de toutes les copies qui n'ont pas été modifiées ou détachées du tampon d'origine. L'image ne supprime pas le tampon lors de sa destruction. Vous pouvez fournir un pointeur de fonction cleanupFunction ainsi qu'un pointeur supplémentaire cleanupInfo qui sera appelé lorsque la dernière copie sera détruite.

Si format est un format de couleur indexé, la table des couleurs de l'image est initialement vide et doit être suffisamment étendue avec setColorCount() ou setColorTable() avant que l'image ne soit utilisée.

QImage::QImage(const QImage &image)

Construit une copie superficielle de l'adresse image donnée.

Pour plus d'informations sur les copies superficielles, voir la documentation sur le partage implicite des données.

Voir aussi copy().

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

Move-construit une instance de QImage, en la faisant pointer sur le même objet que celui vers lequel other pointait.

[virtual noexcept] QImage::~QImage()

Détruit l'image et nettoie.

bool QImage::allGray() const

Renvoie true si toutes les couleurs de l'image sont des nuances de gris (c'est-à-dire que leurs composantes rouge, verte et bleue sont égales), sinon false.

Notez que cette fonction est lente pour les images sans table des couleurs.

Voir aussi isGrayscale().

void QImage::applyColorTransform(const QColorTransform &transform)

Applique la transformation de couleur transform à tous les pixels de l'image.

[since 6.8] void QImage::applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor)

Applique la transformation des couleurs transform à tous les pixels de l'image et convertit le format de l'image en toFormat.

La conversion d'image spécifiée flags contrôle la manière dont les données de l'image sont traitées au cours du processus de conversion de format.

Cette fonction a été introduite dans Qt 6.8.

int QImage::bitPlaneCount() const

Renvoie le nombre de plans de bits dans l'image.

Le nombre de plans de bits est le nombre de bits d'informations de couleur et de transparence pour chaque pixel. Ce nombre est différent (c'est-à-dire plus petit) de la profondeur lorsque le format de l'image contient des bits inutilisés.

Voir également depth(), format() et Image Formats.

uchar *QImage::bits()

Renvoie un pointeur sur les données du premier pixel. Cela équivaut à scanLine(0).

Notez que QImage utilise un partage implicite des données. Cette fonction effectue une copie profonde des données de pixels partagées, garantissant ainsi que ce site QImage est le seul à utiliser la valeur de retour actuelle.

Voir également scanLine(), sizeInBytes() et constBits().

const uchar *QImage::bits() const

Notez que QImage utilise le partage implicite des données, mais cette fonction n' effectue pas de copie profonde des données de pixels partagées, car les données renvoyées sont constantes.

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

qsizetype QImage::bytesPerLine() const

Renvoie le nombre d'octets par ligne de balayage de l'image.

Ceci est équivalent à sizeInBytes() / height() si height() est différent de zéro.

Voir aussi scanLine().

qint64 QImage::cacheKey() const

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

La clé change lorsque l'image est modifiée.

QRgb QImage::color(int i) const

Renvoie la couleur de la table des couleurs à l'index i. La première couleur est à l'index 0.

Les couleurs de la table des couleurs d'une image sont spécifiées sous forme de quadruplets ARGB (QRgb). Utilisez les fonctions qAlpha(), qRed(), qGreen() et qBlue() pour obtenir les composantes de la valeur de la couleur.

Voir également setColor(), pixelIndex() et Pixel Manipulation.

int QImage::colorCount() const

Renvoie la taille de la table des couleurs de l'image.

Notez que colorCount() renvoie 0 pour les images 32-bpp car ces images n'utilisent pas de tables de couleurs, mais encodent les valeurs des pixels sous forme de quadruplets ARGB.

Voir aussi setColorCount() et Image Information.

QColorSpace QImage::colorSpace() const

Renvoie l'espace couleur de l'image si un espace couleur est défini.

Voir aussi setColorSpace().

QList<QRgb> QImage::colorTable() const

Renvoie une liste des couleurs contenues dans la table des couleurs de l'image, ou une liste vide si l'image n'a pas de table des couleurs

Voir aussi setColorTable(), colorCount(), et color().

[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) const &

Renvoie la couleur de l'image transformée en utilisant transform sur tous les pixels de l'image.

Note : Si transform a un espace colorimétrique source incompatible avec le format de cette image, il renvoie une valeur nulle à QImage. Si transform a un espace colorimétrique cible incompatible avec le format de cette image, l'image sera également convertie dans un format compatible. Pour plus de contrôle sur le choix du format de pixel cible, voir la surcharge à trois arguments de cette méthode.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi applyColorTransform().

[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

Renvoie la couleur de l'image transformée à l'aide de transform sur tous les pixels de l'image, ce qui renvoie une image au format toFormat.

La conversion d'image spécifiée flags contrôle la manière dont les données de l'image sont traitées au cours du processus de conversion de format.

Remarque : Si transform a un espace colorimétrique source incompatible avec le format de cette image, ou un espace colorimétrique cible incompatible avec toFormat, la fonction renvoie une valeur nulle QImage.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi applyColorTransform().

[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) &&

Renvoie la couleur de l'image transformée en utilisant transform sur tous les pixels de l'image.

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

Cette fonction a été introduite dans Qt 6.4.

Voir aussi applyColorTransform().

[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

Renvoie la couleur de l'image transformée en utilisant transform sur tous les pixels de l'image.

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

Cette fonction a été introduite dans Qt 6.8.

Voir aussi applyColorTransform().

const uchar *QImage::constBits() const

Renvoie un pointeur sur les données du premier pixel.

Notez que QImage utilise un partage implicite des données, mais cette fonction n' effectue pas de copie profonde des données de pixels partagées, car les données renvoyées sont constantes.

Voir aussi bits() et constScanLine().

const uchar *QImage::constScanLine(int i) const

Renvoie un pointeur sur les données du pixel à la ligne de balayage avec l'index i. La première ligne de balayage est à l'index 0.

Les données de la ligne de balayage sont alignées sur 32 bits au minimum. Pour les formats 64 bits, elles suivent l'alignement natif des entiers 64 bits (64 bits pour la plupart des plates-formes, mais surtout 32 bits sur i386).

Notez que QImage utilise un partage implicite des données, mais cette fonction n' effectue pas de copie profonde des données de pixels partagées, car les données renvoyées sont constantes.

Voir aussi scanLine() et constBits().

void QImage::convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)

Convertit l'image à l'endroit donné format, en la détachant si nécessaire.

La conversion d'image spécifiée flags contrôle la manière dont les données de l'image sont traitées au cours du processus de conversion.

Voir aussi convertedTo().

void QImage::convertToColorSpace(const QColorSpace &colorSpace)

Convertit l'image en colorSpace.

Si l'image n'a pas d'espace couleur valide, la méthode ne fait rien.

Remarque : si colorSpace n'est pas compatible avec le format actuel, l'image sera convertie dans un format compatible.

Voir également convertedToColorSpace() et setColorSpace().

[since 6.8] void QImage::convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)

Convertit l'image en colorSpace et format.

Si l'image n'a pas d'espace colorimétrique valide, la méthode ne fait rien, ni si l'espace colorimétrique n'est pas compatible avec le format.

La conversion d'image spécifiée flags contrôle la manière dont les données de l'image sont traitées au cours du processus de conversion de format.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi convertedToColorSpace() et setColorSpace().

QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

Renvoie une copie de l'image dans le fichier format.

La conversion d'image spécifiée flags contrôle la manière dont les données de l'image sont traitées au cours du processus de conversion.

Voir aussi convertTo() et Image Formats.

QImage QImage::convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const

Renvoie une copie de l'image convertie au format donné format, en utilisant le format spécifié colorTable.

La conversion des formats RVB en formats indexés est une opération lente et utilise une approche directe de la couleur la plus proche, sans tramage.

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

[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

Renvoie une copie de l'image dans le fichier format.

Les fonctions de conversion d'image spécifiées flags contrôlent la manière dont les données d'image sont traitées au cours du processus de conversion.

Ces fonctions ont été introduites dans Qt 6.0.

Voir aussi convertTo() et Image Formats.

QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace) const

Renvoie l'image convertie en colorSpace.

Si l'image n'a pas d'espace colorimétrique valide, une valeur null QImage est renvoyée.

Remarque : si colorSpace n'est pas compatible avec le format actuel, l'image renvoyée sera également convertie dans un format compatible. Pour plus de contrôle sur le format de l'image renvoyée, voir la surcharge à trois arguments de cette méthode.

Voir aussi convertToColorSpace() et colorTransformed().

[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

Renvoie l'image convertie en colorSpace et format.

Si l'image n'a pas d'espace couleur valide, une valeur null QImage est renvoyée.

Les fonctions de conversion d'image spécifiées flags contrôlent la manière dont les données d'image sont traitées au cours du processus de conversion de format.

Ces fonctions ont été introduites dans Qt 6.8.

Voir aussi colorTransformed().

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

Renvoie une sous-zone de l'image sous la forme d'une nouvelle image.

L'image renvoyée est copiée à partir de la position (rectangle.x(), rectangle.y()) dans cette image, et aura toujours la taille de la zone rectangle.

Dans les zones situées au-delà de cette image, les pixels sont mis à 0. Pour les images RVB 32 bits, cela signifie noir ; pour les images ARGB 32 bits, cela signifie noir transparent ; pour les images 8 bits, cela signifie la couleur avec l'index 0 dans la table des couleurs, qui peut être n'importe quoi ; pour les images 1 bit, cela signifie Qt::color0.

Si l'adresse rectangle est un rectangle nul, l'image entière est copiée.

Voir aussi QImage().

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

L'image renvoyée est copiée à partir de la position (x, y) dans cette image, et aura toujours les valeurs width et height. Dans les zones situées au-delà de cette image, les pixels sont mis à 0.

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

QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const

Construit et renvoie un masque 1-bpp à partir du tampon alpha de cette image. Renvoie une image nulle si le format de l'image est QImage::Format_RGB32.

L'argument flags est un OU bit à bit de l'argument Qt::ImageConversionFlags, et contrôle le processus de conversion. En passant 0 pour les drapeaux, toutes les options par défaut sont activées.

L'image renvoyée a un ordre de bits little-endian (c'est-à-dire que le format de l'image est QImage::Format_MonoLSB), que vous pouvez convertir en big-endian (QImage::Format_Mono) à l'aide de la fonction convertToFormat().

Voir aussi createHeuristicMask() et Image Transformations.

QImage QImage::createHeuristicMask(bool clipTight = true) const

Crée et renvoie un masque heuristique de 1 bpp pour cette image.

La fonction fonctionne en sélectionnant une couleur dans l'un des coins, puis en éliminant les pixels de cette couleur en commençant par tous les bords. Les quatre coins votent pour la couleur à masquer. En cas de tirage au sort (ce qui signifie généralement que cette fonction n'est pas applicable à l'image), le résultat est arbitraire.

L'image renvoyée a un ordre de bits little-endian (c'est-à-dire que le format de l'image est QImage::Format_MonoLSB), que vous pouvez convertir en big-endian (QImage::Format_Mono) à l'aide de la fonction convertToFormat().

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.

Notez que cette fonction ne tient pas compte du tampon alpha.

Voir également createAlphaMask() et Image Transformations.

QImage QImage::createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const

Crée et renvoie un masque pour cette image sur la base de la valeur color donnée. Si la valeur mode est MaskInColor (valeur par défaut), tous les pixels correspondant à color seront des pixels opaques dans le masque. Si mode est MaskOutColor, tous les pixels correspondant à la couleur donnée seront transparents.

Voir également createAlphaMask() et createHeuristicMask().

int QImage::depth() const

Renvoie la profondeur de l'image.

La profondeur de l'image est le nombre de bits utilisés pour stocker un seul pixel, également appelé bits par pixel (bpp).

Les profondeurs prises en charge sont 1, 8, 16, 24, 32 et 64.

Voir aussi bitPlaneCount(), convertToFormat(), Image Formats, et Image Information.

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

Renvoie la taille de l'image en pixels indépendants du périphérique.

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

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

Cette fonction a été introduite dans Qt 6.2.

qreal QImage::devicePixelRatio() const

Renvoie le rapport de pixels du périphérique pour l'image. 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 mise en page en fonction de la taille de l'image : QSize layoutSize = image.size() / image.devicePixelRatio()

La valeur par défaut est 1,0.

Voir également setDevicePixelRatio() et QImageReader.

int QImage::dotsPerMeterX() const

Renvoie le nombre de pixels qui tiennent horizontalement dans un mètre physique. Avec dotsPerMeterY(), ce nombre définit l'échelle et le rapport d'aspect de l'image.

Voir également setDotsPerMeterX() et Image Information.

int QImage::dotsPerMeterY() const

Renvoie le nombre de pixels qui tiennent verticalement dans un mètre physique. Avec dotsPerMeterX(), ce nombre définit l'échelle et le rapport d'aspect de l'image.

Voir également setDotsPerMeterY() et Image Information.

void QImage::fill(uint pixelValue)

Remplit l'ensemble de l'image avec l'adresse pixelValue.

Si la profondeur de cette image est de 1, seul le bit le plus bas est utilisé. Si vous dites fill(0), fill(2), etc., l'image est remplie de 0. Si vous dites fill(1), fill(3), etc., l'image est remplie de 1. Si la profondeur est de 8, les 8 bits les plus bas sont utilisés et si la profondeur est de 16, les 16 bits les plus bas sont utilisés.

Si la profondeur de l'image est supérieure à 32 bits, le résultat est indéfini.

Note : Il n'y a pas de valeur correspondante, bien que QImage::pixelIndex() renvoie la même valeur pour les formats indexés, et QImage::pixel() pour les formats RGB32, ARGB32, et ARGB32PM.

Voir aussi depth() et Image Transformations.

void QImage::fill(Qt::GlobalColor color)

Remplit l'image avec la valeur color, décrite comme une couleur globale standard.

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

void QImage::fill(const QColor &color)

Remplit l'ensemble de l'image avec la valeur donnée color.

Si la profondeur de l'image est de 1, l'image sera remplie avec 1 si color est égal à Qt::color1; sinon elle sera remplie avec 0.

Si la profondeur de l'image est de 8, l'image sera remplie avec l'index correspondant à color dans la table des couleurs si elle est présente ; sinon, elle sera remplie avec 0.

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

[since 6.9] void QImage::flip(Qt::Orientations orient = Qt::Vertical)

Retourne ou reflète l'image dans le sens horizontal et/ou vertical en fonction de orient.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi flipped(Qt::Orientations) et Image Transformations.

[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) const &

[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) &&

Renvoie une version inversée ou miroir de l'image, inversée dans le sens horizontal et/ou vertical selon orient.

Notez que l'image originale n'est pas modifiée.

Ces fonctions ont été introduites dans Qt 6.9.

Voir aussi flip(Qt::Orientations) et Image Transformations.

QImage::Format QImage::format() const

Renvoie le format de l'image.

Voir aussi Image Formats.

[static, since 6.2] QImage QImage::fromData(QByteArrayView data, const char *format = nullptr)

Construit une image à partir du fichier QByteArrayView data . Le chargeur tente de lire l'image en utilisant le format spécifié format. Si format n'est pas spécifié (ce qui est le cas par défaut), le chargeur recherche un en-tête dans les données pour deviner le format du fichier.

Si format est spécifié, il doit s'agir d'une des valeurs renvoyées par QImageReader::supportedImageFormats().

Si le chargement de l'image échoue, l'image renvoyée sera une image nulle.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi load(), save(), et Reading and Writing Image Files.

[static] QImage QImage::fromData(const QByteArray &data, const char *format = nullptr)

Construit un QImage à partir du QByteArray data donné.

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

[static] QImage QImage::fromData(const uchar *data, int size, const char *format = nullptr)

Construit un QImage à partir des premiers octets size du binaire data donné.

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

[static, since 6.0] QImage QImage::fromHBITMAP(HBITMAP hbitmap)

Renvoie une adresse QImage équivalente à l'adresse hbitmap.

HBITMAP ne stocke pas d'informations sur le canal alpha.

Dans le cas standard, le canal alpha est ignoré et une image totalement opaque est créée (typiquement au format QImage::Format_RGB32).

Il existe cependant des cas où le canal alpha est utilisé, par exemple pour les icônes d'application ou les icônes de la barre d'état système. Dans ce cas, reinterpretAsFormat(QImage::Format_ARGB32) doit être appelé sur l'image renvoyée pour s'assurer que le format est correct.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi toHBITMAP() et reinterpretAsFormat().

[static, since 6.0] QImage QImage::fromHICON(HICON icon)

Retourne un QImage qui est équivalent au icon donné.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi toHICON().

bool QImage::hasAlphaChannel() const

Renvoie true si l'image a un format qui respecte le canal alpha, sinon renvoie false.

Voir aussi Image Information.

int QImage::height() const

Renvoie la hauteur de l'image.

Voir aussi Image Information.

void QImage::invertPixels(QImage::InvertMode mode = InvertRgb)

Inverse toutes les valeurs des pixels de l'image.

L'inversion donnée à mode n'a de sens que si la profondeur de l'image est de 32. La valeur par défaut de mode est InvertRgb, ce qui laisse le canal alpha inchangé. Si mode est InvertRgba, les bits alpha sont également inversés.

Inverser une image 8 bits signifie remplacer tous les pixels utilisant l'indice de couleur i par un pixel utilisant l'indice de couleur 255 moins i. Il en va de même pour une image 1 bit. Notez que la table des couleurs n' est pas modifiée.

Si l'image possède un canal alpha prémultiplié, elle est d'abord convertie dans un format d'image non multiplié pour être inversée, puis reconvertie.

Voir aussi Image Transformations.

bool QImage::isGrayscale() const

Pour les images 32 bits, cette fonction est équivalente à allGray().

Pour les images indexées en couleur, cette fonction renvoie true si color(i) est QRgb(i, i, i) pour tous les index de la table des couleurs ; sinon, elle renvoie false.

Voir également allGray() et Image Formats.

bool QImage::isNull() const

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

Une image nulle a tous les paramètres fixés à zéro et aucune donnée allouée.

bool QImage::load(const QString &fileName, const char *format = nullptr)

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

Le chargeur tente de lire l'image à l'aide de l'adresse format spécifiée, par exemple PNG ou JPG. Si format n'est pas spécifié (ce qui est le cas par défaut), il est auto-détecté sur la base du suffixe et de l'en-tête du fichier. Pour plus de détails, voir QImageReader::setAutoDetectImageFormat().

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.

Voir aussi Reading and Writing Image Files.

bool QImage::load(QIODevice *device, const char *format)

Cette fonction lit un QImage à partir du device donné. Elle peut, par exemple, être utilisée pour charger une image directement dans un QByteArray.

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

[since 6.2] bool QImage::loadFromData(QByteArrayView data, const char *format = nullptr)

Charge une image à partir du site QByteArrayView data . Retourne true si l'image a été chargée avec succès ; sinon, invalide l'image et retourne false.

Le chargeur tente de lire l'image à l'aide de l'adresse format spécifiée, par exemple PNG ou JPG. 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.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi Reading and Writing Image Files.

bool QImage::loadFromData(const QByteArray &data, const char *format = nullptr)

Charge une image à partir du site QByteArray data .

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

bool QImage::loadFromData(const uchar *data, int len, const char *format = nullptr)

Charge une image à partir des premiers len octets du fichier binaire donné data.

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

[since 6.0, until 6.13] void QImage::mirror(bool horizontal = false, bool vertical = true)

Cette fonction sera obsolète à partir de la version 6.13.

Utilisez flip(Qt::Orientations) à la place.

Miroir de l'image dans la direction horizontale et/ou verticale selon que horizontal et vertical sont réglés sur true ou false.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi mirrored() et Image Transformations.

[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) const &

[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) &&

Cette fonction sera obsolète à partir de la version 6.13.

Utilisez flipped(Qt::Orientations) à la place.

Renvoie un miroir de l'image, dans le sens horizontal et/ou vertical, selon que horizontal et vertical sont réglés sur true ou false.

Notez que l'image originale n'est pas modifiée.

Voir aussi mirror() et Image Transformations.

QPoint QImage::offset() const

Renvoie le nombre de pixels dont l'image doit être décalée lors de son positionnement par rapport à d'autres images.

Voir aussi setOffset() et Image Information.

QRgb QImage::pixel(const QPoint &position) const

Renvoie la couleur du pixel à l'adresse position.

Si l'adresse position n'est pas valide, les résultats sont indéfinis.

Attention : Cette fonction est coûteuse lorsqu'elle est utilisée pour des manipulations massives de pixels. Utilisez constBits() ou constScanLine() lorsque de nombreux pixels doivent être lus.

Voir aussi setPixel(), valid(), constBits(), constScanLine() et Pixel Manipulation.

QRgb QImage::pixel(int x, int y) const

Renvoie la couleur du pixel aux coordonnées (x, y).

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

QColor QImage::pixelColor(const QPoint &position) const

Renvoie la couleur du pixel situé à l'endroit donné position sous la forme d'un QColor.

Si l'adresse position n'est pas valide, une adresse QColor invalide est renvoyée.

Attention : Cette fonction est coûteuse lorsqu'elle est utilisée pour des manipulations massives de pixels. Utilisez constBits() ou constScanLine() lorsque de nombreux pixels doivent être lus.

Voir aussi setPixelColor(), setPixel(), valid(), constBits(), constScanLine() et Pixel Manipulation.

QColor QImage::pixelColor(int x, int y) const

Renvoie la couleur du pixel aux coordonnées (x, y) sous forme de QColor.

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

[noexcept] QPixelFormat QImage::pixelFormat() const

Retourne le site QImage::Format sous la forme d'un QPixelFormat

int QImage::pixelIndex(const QPoint &position) const

Renvoie l'index du pixel à l'adresse position.

Si position n'est pas valide, ou si l'image n'est pas une image palettisée (depth() > 8), les résultats sont indéfinis.

Voir aussi valid(), depth(), et Pixel Manipulation.

int QImage::pixelIndex(int x, int y) const

Renvoie l'indice de pixel à (x, y).

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

QRect QImage::rect() const

Renvoie le rectangle englobant (0, 0, width(), height()) de l'image.

Voir aussi Image Information.

bool QImage::reinterpretAsFormat(QImage::Format format)

Change le format de l'image à format sans changer les données. Ne fonctionne qu'avec des formats de même profondeur.

Retourne true en cas de succès.

Cette fonction peut être utilisée pour changer des images avec des canaux alpha en leurs formats opaques correspondants si les données sont connues pour être uniquement opaques, ou pour changer le format d'un tampon d'image donné avant de l'écraser avec de nouvelles données.

Attention : La fonction ne vérifie pas si les données de l'image sont valides dans le nouveau format et renvoie toujours true si les profondeurs sont compatibles. Les opérations sur une image dont les données ne sont pas valides sont indéfinies.

Attention : Si l'image n'est pas détachée, les données seront copiées.

Voir aussi hasAlphaChannel() et convertToFormat().

[since 6.0] void QImage::rgbSwap()

Intervertit les valeurs des composantes rouge et bleue de tous les pixels, convertissant ainsi une image RVB en une image BGR.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi rgbSwapped() et Image Transformations.

QImage QImage::rgbSwapped() const &

QImage QImage::rgbSwapped() &&

Renvoie une page QImage dans laquelle les valeurs des composantes rouge et bleue de tous les pixels ont été échangées, convertissant ainsi une image RGB en une image BGR.

L'image originale QImage n'est pas modifiée.

Voir également rgbSwap() et Image Transformations.

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

Enregistre l'image dans le fichier avec l'adresse fileName, en utilisant le fichier image format et le facteur quality. Si format est nullptr, QImage tentera de deviner le format en regardant le suffixe de fileName.

Le facteur quality doit être compris entre 0 et 100 ou -1. Spécifiez 0 pour obtenir de petits fichiers compressés, 100 pour de gros fichiers non compressés et -1 (par défaut) pour utiliser les paramètres par défaut.

Renvoie true si l'image a été enregistrée avec succès ; sinon, renvoie false.

Voir également Reading and Writing Image Files.

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

Cette fonction écrit un QImage dans le device donné.

Elle peut, par exemple, être utilisée pour enregistrer une image directement dans un QByteArray:

QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format

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

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

Renvoie une copie de l'image mise à l'échelle d'un rectangle défini par size en fonction de aspectRatioMode et transformMode.

Illustration montrant trois façons différentes de mettre à l'échelle des images avec le mode Rapport d'aspect

  • Si aspectRatioMode est Qt::IgnoreAspectRatio, l'image est mise à l'échelle de size.
  • Si aspectRatioMode est Qt::KeepAspectRatio, l'image est réduite à un rectangle aussi grand que possible à l'intérieur de size, en préservant le rapport hauteur/largeur.
  • Si aspectRatioMode est Qt::KeepAspectRatioByExpanding, l'image est réduite à 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 image nulle.

Voir aussi isNull() et Image Transformations.

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

Renvoie une copie de l'image mise à l'échelle d'un rectangle avec les données width et height en fonction des données aspectRatioMode et transformMode.

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

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

QImage QImage::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 de la valeur donnée height à l'aide de la transformation spécifiée mode.

Cette fonction calcule automatiquement la largeur de l'image afin que le rapport de l'image soit préservé.

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

Voir aussi Image Transformations.

QImage QImage::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.

Cette fonction calcule automatiquement la hauteur de l'image afin de préserver son rapport hauteur/largeur.

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

Voir aussi Image Transformations.

uchar *QImage::scanLine(int i)

Renvoie un pointeur sur les données du pixel à la ligne de balayage avec l'index i. La première ligne de balayage est à l'index 0.

Les données de la ligne de balayage sont alignées sur 32 bits au minimum. Pour les formats 64 bits, elles suivent l'alignement natif des entiers 64 bits (64 bits pour la plupart des plates-formes, mais notamment 32 bits sur i386).

Par exemple, pour supprimer la composante verte de chaque pixel d'une image :

for (int y = 0; y < image.height(); ++y) {
    QRgb *line = reinterpret_cast<QRgb*>(image.scanLine(y));
    for (int x = 0; x < image.width(); ++x) {
        QRgb &rgb = line[x];
        rgb = qRgba(qRed(rgb), qGreen(0), qBlue(rgb), qAlpha(rgb));
    }
}

Attention : Si vous accédez à des données d'image 32-bpp, faites passer le pointeur retourné à QRgb* (QRgb a une taille de 32 bits) et utilisez-le pour lire/écrire la valeur du pixel. Vous ne pouvez pas utiliser directement le pointeur uchar*, car le format des pixels dépend de l'ordre des octets sur la plate-forme sous-jacente. Utilisez qRed(), qGreen(), qBlue() et qAlpha() pour accéder aux pixels.

Voir aussi bytesPerLine(), bits(), Pixel Manipulation, et constScanLine().

const uchar *QImage::scanLine(int i) const

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

void QImage::setAlphaChannel(const QImage &alphaChannel)

Définit le canal alpha de cette image à l'adresse alphaChannel.

Si alphaChannel est une image alpha 8 bits, les valeurs alpha sont utilisées directement. Sinon, alphaChannel est converti en niveaux de gris 8 bits et l'intensité des valeurs des pixels est utilisée.

Si l'image possède déjà un canal alpha, celui-ci est multiplié par le nouveau. Si l'image n'a pas de canal alpha, elle sera convertie dans un format qui en a un.

L'opération est similaire à l'application de alphaChannel comme image alpha sur cette image à l'aide de QPainter::CompositionMode_DestinationIn.

Voir aussi hasAlphaChannel(), Image Transformations, et Image Formats.

void QImage::setColor(int index, QRgb colorValue)

Définit la couleur à l'adresse index dans la table des couleurs, à l'adresse colorValue. La valeur de la couleur est un quadruplet ARGB.

Si index est en dehors de la taille actuelle de la table des couleurs, il est étendu avec setColorCount().

Voir aussi color(), colorCount(), setColorTable() et Pixel Manipulation.

void QImage::setColorCount(int colorCount)

Redimensionne la table des couleurs pour qu'elle contienne colorCount entrées.

Si la table des couleurs est étendue, toutes les couleurs supplémentaires seront définies comme transparentes (c'est-à-dire qRgba(0, 0, 0, 0)).

Lorsque l'image est utilisée, la table des couleurs doit être suffisamment grande pour contenir des entrées pour toutes les valeurs de pixel/index présentes dans l'image, sinon les résultats sont indéfinis.

Voir aussi colorCount(), colorTable(), setColor() et Image Transformations.

void QImage::setColorSpace(const QColorSpace &colorSpace)

Définit l'espace colorimétrique de l'image à colorSpace sans effectuer de conversion sur les données de l'image.

Voir aussi colorSpace().

void QImage::setColorTable(const QList<QRgb> &colors)

Définit la table des couleurs utilisée pour traduire les indices de couleur en valeurs QRgb, à l'adresse colors spécifiée.

Lorsque l'image est utilisée, la table des couleurs doit être suffisamment grande pour contenir des entrées pour toutes les valeurs de pixel/indice présentes dans l'image, sinon les résultats sont indéfinis.

Voir également colorTable(), setColor() et Image Transformations.

void QImage::setDevicePixelRatio(qreal scaleFactor)

Définit le rapport de pixels du périphérique pour l'image. 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 l'image 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 l'image prendront le ratio en compte : QSize layoutSize = image.size() / image.devicePixelRatio() L'effet net de ceci est que l'image est affichée comme une image à haut DPI plutôt que comme une grande image (voir Drawing High Resolution Versions of Pixmaps and Images).

Voir également devicePixelRatio() et deviceIndependentSize().

void QImage::setDotsPerMeterX(int x)

Définit le nombre de pixels qui tiennent horizontalement dans un mètre physique, à x.

Avec dotsPerMeterY(), ce nombre définit l'échelle et le rapport hauteur/largeur de l'image et détermine l'échelle à laquelle QPainter dessinera les graphiques sur l'image. Il ne modifie pas l'échelle ou le rapport d'aspect de l'image lorsqu'elle est affichée sur d'autres dispositifs de peinture.

Voir également dotsPerMeterX() et Image Information.

void QImage::setDotsPerMeterY(int y)

Définit le nombre de pixels qui tiennent verticalement dans un mètre physique, à y.

Avec dotsPerMeterX(), ce nombre définit l'échelle et le rapport hauteur/largeur de l'image et détermine l'échelle à laquelle QPainter dessinera les graphiques sur l'image. Il ne modifie pas l'échelle ou le rapport d'aspect de l'image lorsqu'elle est affichée sur d'autres dispositifs de peinture.

Voir également dotsPerMeterY() et Image Information.

void QImage::setOffset(const QPoint &offset)

Définit le nombre de pixels dont l'image doit être décalée lors de son positionnement par rapport à d'autres images, à offset.

Voir également offset() et Image Information.

void QImage::setPixel(const QPoint &position, uint index_or_rgb)

Définit l'index ou la couleur du pixel à la valeur position donnée à index_or_rgb.

Si le format de l'image est monochrome ou palettisé, la valeur index_or_rgb doit être un index dans la table des couleurs de l'image, sinon le paramètre doit être une valeur QRgb.

Si position n'est pas une paire de coordonnées valide dans l'image, ou si index_or_rgb >= colorCount() dans le cas d'images monochromes et palettisées, le résultat est indéfini.

Attention : Cette fonction est coûteuse en raison de l'appel de la fonction interne detach(); si les performances sont un problème, nous recommandons l'utilisation de scanLine() ou bits() pour accéder directement aux données des pixels.

Voir également pixel() et Pixel Manipulation.

void QImage::setPixel(int x, int y, uint index_or_rgb)

Définit l'indice de pixel ou la couleur à (x, y) à index_or_rgb.

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

void QImage::setPixelColor(const QPoint &position, const QColor &color)

Définit la couleur à l'endroit donné position à color.

Si position n'est pas une paire de coordonnées valide dans l'image, ou si le format de l'image est monochrome ou palettisé, le résultat est indéfini.

Attention : Cette fonction est coûteuse en raison de l'appel de la fonction interne detach(); si les performances sont un problème, nous recommandons l'utilisation de scanLine() ou bits() pour accéder directement aux données des pixels.

Voir aussi pixelColor(), pixel(), bits(), scanLine() et Pixel Manipulation.

void QImage::setPixelColor(int x, int y, const QColor &color)

Fixe la couleur du pixel à (x, y) à color.

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

void QImage::setText(const QString &key, const QString &text)

Définit le texte de l'image à l'adresse text et l'associe à l'adresse key.

Si vous ne souhaitez stocker qu'un seul bloc de texte (c'est-à-dire un "commentaire" ou une simple description), vous pouvez soit passer une clé vide, soit utiliser une clé générique telle que "Description".

Le texte de l'image est intégré dans les données de l'image lorsque vous appelez save() ou QImageWriter::write().

Tous les formats d'image ne prennent pas en charge le texte intégré. Vous pouvez savoir si une image ou un format spécifique prend en charge l'incorporation de texte en utilisant QImageWriter::supportsOption(). Voici un exemple :

    QImageWriter writer ; writer.setFormat("png") ; if (writer.supportsOption(QImageIOHandler::Description))        qDebug() << "Png supports embedded text";

Vous pouvez utiliser QImageWriter::supportedImageFormats() pour connaître les formats d'image disponibles.

Voir également text() et textKeys().

QSize QImage::size() const

Renvoie la taille de l'image, c'est-à-dire ses width() et height().

Voir aussi Image Information et deviceIndependentSize().

qsizetype QImage::sizeInBytes() const

Renvoie la taille des données de l'image en octets.

Voir aussi bytesPerLine(), bits() et Image Information.

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

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

QString QImage::text(const QString &key = QString()) const

Renvoie le texte de l'image associée à l'adresse key. Si le key spécifié est une chaîne vide, le texte entier de l'image est renvoyé, chaque paire clé-texte étant séparée par une nouvelle ligne.

Voir aussi setText() et textKeys().

QStringList QImage::textKeys() const

Renvoie les clés de texte de cette image.

Vous pouvez utiliser ces clés avec text() pour lister le texte de l'image pour une certaine clé.

Voir aussi text().

CGImageRef QImage::toCGImage() const

Crée un CGImage équivalent à ce QImage, et renvoie un handle CGImageRef.

Le CGImageRef retourné participe au partage implicite de QImage et contient une référence aux données de QImage. CGImage est immuable et ne détachera jamais le QImage. L'écriture sur le QImage le détachera comme d'habitude.

Cette fonction est rapide et ne copie ni ne convertit les données de l'image.

Si le format de l'image ne peut pas être converti, un CGImageRef nul sera renvoyé. Les utilisateurs de cette fonction peuvent alors commencer par convertir l'image QImage dans un format supporté, par exemple Format_ARGB32_Premultiplied.

Si l'image n'a pas d'espace colorimétrique défini, l'espace colorimétrique CGImageRef résultant est défini sur l'espace colorimétrique sRGB.

[since 6.0] HBITMAP QImage::toHBITMAP() const

Crée un équivalent HBITMAP de QImage.

Renvoie l'identifiant HBITMAP.

Il incombe à l'appelant de libérer les données de HBITMAP après utilisation.

Pour une utilisation avec des appels GDI standard, tels que BitBlt(), l'image doit avoir le format QImage::Format_RGB32.

Lors de l'utilisation du HBITMAP résultant pour la fonction GDI AlphaBlend(), l'image doit avoir le format QImage::Format_ARGB32_Premultiplied (utiliser convertToFormat()).

Lors de l'utilisation du HBITMAP résultant comme icône d'application ou icône de la barre d'état système, l'image doit avoir le format QImage::Format_ARGB32.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi fromHBITMAP() et convertToFormat().

[since 6.0] HICON QImage::toHICON(const QImage &mask = {}) const

Crée un équivalent HICON de QPixmap, en appliquant le masque mask.

Si mask n'est pas nul, il doit être au format QImage::Format_Mono. Renvoie l'identifiant HICON.

Il incombe à l'appelant de libérer les données de HICON après utilisation.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi fromHICON().

[static noexcept] QImage::Format QImage::toImageFormat(QPixelFormat format)

Convertit format en un QImage::Format

[static noexcept] QPixelFormat QImage::toPixelFormat(QImage::Format format)

Convertit format en un QPixelFormat

QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const

Renvoie une copie de l'image transformée à l'aide de la transformation matrix et de la transformation mode.

L'image renvoyée aura normalement le même {Formats d'image}{format} que l'image d'origine. Toutefois, une transformation complexe peut produire une image dont tous les pixels ne sont pas couverts par les pixels transformés de l'image d'origine. Dans ce cas, les pixels d'arrière-plan se verront attribuer une valeur de couleur transparente et l'image transformée se verra attribuer un format avec un canal alpha, même si l'image d'origine n'en disposait pas.

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

Contrairement à l'autre surcharge, cette fonction peut être utilisée pour effectuer des transformations de perspective sur des images.

Voir également trueMatrix() et Image Transformations.

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

Renvoie la matrice réelle utilisée pour transformer une image avec les valeurs données width, height et matrix.

Lors de la transformation d'une image à 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 contenant tous les points transformés de l'image originale. Cette fonction renvoie la matrice modifiée, qui représente correctement les points de l'image originale dans la nouvelle image.

Contrairement à l'autre surcharge, cette fonction crée des matrices de transformation qui peuvent être utilisées pour effectuer des transformations de perspective sur les images.

Voir aussi transformed() et Image Transformations.

bool QImage::valid(const QPoint &pos) const

Renvoie true si pos est une paire de coordonnées valide dans l'image ; sinon, renvoie false.

Voir aussi rect() et QRect::contains().

bool QImage::valid(int x, int y) const

Renvoie true si QPoint(x, y) est une paire de coordonnées valide dans l'image ; sinon, renvoie false.

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

int QImage::width() const

Renvoie la largeur de l'image.

Voir aussi Image Information.

QImage::operator QVariant() const

Retourne l'image sous forme de QVariant.

bool QImage::operator!=(const QImage &image) const

Renvoie true si cette image et l'image donnée image ont des contenus différents ; sinon, renvoie false.

La comparaison peut être lente, à moins qu'il n'y ait une différence évidente, comme des largeurs différentes, auquel cas la fonction renvoie rapidement.

Voir aussi operator=().

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

Move-assigne other à cette instance QImage.

QImage &QImage::operator=(const QImage &image)

Affecte à cette image une copie superficielle de l'adresse image donnée et renvoie une référence à cette image.

Pour plus d'informations sur les copies superficielles, voir la documentation sur le partage implicite des données.

Voir aussi copy() et QImage().

bool QImage::operator==(const QImage &image) const

Renvoie true si cette image et l'image donnée image ont le même contenu ; sinon, renvoie false.

La comparaison peut être lente, à moins qu'il n'y ait une différence évidente (par exemple, une taille ou un format différent), auquel cas la fonction renvoie rapidement.

Voir aussi operator=().

Non-membres apparentés

QImageCleanupFunction

Une fonction avec la signature suivante qui peut être utilisée pour mettre en œuvre une gestion de base de la mémoire des images :

void myImageCleanupHandler(void *info);

QDataStream &operator<<(QDataStream &stream, const QImage &image)

Écrit l'adresse image sur l'adresse stream sous la forme d'une image PNG, ou d'une image BMP si la version du flux est 1. Notez que l'écriture du flux dans un fichier ne produira pas un fichier image valide.

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

QDataStream &operator>>(QDataStream &stream, QImage &image)

Lit une image depuis le site stream et la stocke dans le site image.

Voir aussi QImage::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.