Fonction StretchBlt (wingdi.h)

La fonction StretchBlt copie une image bitmap d’un rectangle source dans un rectangle de destination, en étirant ou en compressant la bitmap pour qu’elle s’adapte aux dimensions du rectangle de destination, si nécessaire. Le système étend ou compresse l’image bitmap en fonction du mode d’étirement actuellement défini dans le contexte de l’appareil de destination.

Syntaxe

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

Paramètres

[in] hdcDest

Handle du contexte de l’appareil de destination.

[in] xDest

Coordonnée x, en unités logiques, du coin supérieur gauche du rectangle de destination.

[in] yDest

Coordonnée y, en unités logiques, du coin supérieur gauche du rectangle de destination.

[in] wDest

Largeur, en unités logiques, du rectangle de destination.

[in] hDest

Hauteur, en unités logiques, du rectangle de destination.

[in] hdcSrc

Handle du contexte de l’appareil source.

[in] xSrc

Coordonnée x, en unités logiques, du coin supérieur gauche du rectangle source.

[in] ySrc

Coordonnée y, en unités logiques, du coin supérieur gauche du rectangle source.

[in] wSrc

Largeur, en unités logiques, du rectangle source.

[in] hSrc

Hauteur, en unités logiques, du rectangle source.

[in] rop

Opération raster à effectuer. Les codes d’opération raster définissent la façon dont le système combine les couleurs dans les opérations de sortie qui impliquent un pinceau, une image bitmap source et une bitmap de destination.

Consultez BitBlt pour obtenir la liste des codes d’opération raster (ROPs) courants. Notez que le ROP CAPTUREBLT ne peut généralement pas être utilisé pour imprimer des contextes d’appareil.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro.

Remarques

StretchBlt étire ou compresse l’image bitmap source en mémoire, puis copie le résultat dans le rectangle de destination. Cette bitmap peut être une bitmap compatible (DDB) ou la sortie de CreateDIBSection. Les données de couleur pour les pixels de modèle ou de destination sont fusionnées après l’étirement ou la compression.

Lorsqu’un métafichier amélioré est enregistré, une erreur se produit (et la fonction retourne FALSE) si le contexte d’appareil source identifie un contexte d’appareil de métafichier amélioré.

Si l’opération raster spécifiée nécessite un pinceau, le système utilise le pinceau actuellement sélectionné dans le contexte de l’appareil de destination.

Les coordonnées de destination sont transformées à l’aide de la transformation actuellement spécifiée pour le contexte de l’appareil de destination ; les coordonnées source sont transformées à l’aide de la transformation actuellement spécifiée pour le contexte de l’appareil source.

Si la transformation source a une rotation ou un cisaillement, une erreur se produit.

Si les bitmaps de destination, de source et de modèle n’ont pas le même format de couleur, StretchBlt convertit les bitmaps source et de modèle pour qu’elles correspondent à l’image bitmap de destination.

Si StretchBlt doit convertir un bitmap monochrome en bitmap de couleur, il définit les bits blancs (1) sur la couleur d’arrière-plan et les bits noirs (0) sur la couleur de premier plan. Pour convertir une image bitmap de couleur en bitmap monochrome, elle définit les pixels qui correspondent à la couleur d’arrière-plan sur le blanc (1) et définit tous les autres pixels sur le noir (0). Les couleurs de premier plan et d'arrière-plan du contexte du périphérique coloré sont utilisées.

StretchBlt crée une image miroir d’une image bitmap si les signes des paramètres nWidthSrc et nWidthDest ou si les paramètres nHeightSrc et nHeightDest diffèrent. Si nWidthSrc et nWidthDest ont des signes différents, la fonction crée une image miroir de la bitmap le long de l’axe x. Si nHeightSrc et nHeightDest ont des signes différents, la fonction crée une image miroir de la bitmap le long de l’axe y.

Tous les appareils ne prennent pas en charge la fonction StretchBlt . Pour plus d’informations, consultez GetDeviceCaps.

ICM: Aucune gestion des couleurs n’est effectuée lorsqu’une opération de fente se produit.

En cas d’utilisation dans un système à plusieurs moniteurs, hdcSrc et hdcDest doivent faire référence au même appareil, sinon la fonction échoue. Pour transférer des données entre des contrôleurs de domaine pour différents appareils, convertissez la bitmap de mémoire en DIB en appelant GetDIBits. Pour afficher la DIB sur le deuxième appareil, appelez SetDIBits ou StretchDIBits.

Exemples

Pour obtenir un exemple, consultez Mise à l’échelle d’une image.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h (inclure Windows.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

BitBlt

Fonctions bitmap

Vue d’ensemble des bitmaps

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits