StretchBlt()/StretchDIBits() échoue lorsque les tailles de bitmap diffèrent considérablement

Traductions disponibles Traductions disponibles
Numéro d'article: 269585 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

StretchBlt() et StretchDIBits() peuvent renvoyer FALSE (0, une valeur BOOLEAN, indiquant un échec), et cela peut se produire même si la mémoire système n'est pas faible, les deux contextes de périphérique (DC) sont compatibles et les deux rectangles sont dans les limites appropriées. Ce problème peut se produire si l'image bitmap source est beaucoup plus petit que l'image bitmap de destination.

Ce problème affecte l'affichage de certaines images bitmap comme papier peint avec un contenu Active Desktop Web activé.

Cause

Ce problème se produit parce que GDI (Graphics Device Interface) alloue une mémoire tampon interne pour bitmap mise à l'échelle des opérations. Une ligne de numérisation (ou bande) à partir de l'image bitmap source est étiré (ou à l'échelle) dans cet mémoire tampon, puis copié vers l'image bitmap de destination. Taille de la mémoire tampon est déterminée par les conditions initiales suivantes :
  • La largeur de l'image bitmap de destination dans PELS une seule source ligne d'analyse.
  • Le facteur d'échelle vertical (hauteur de destination / source hauteur).
  • Nombre d'octets par PEL (profondeur de couleur).
La taille maximale de ce tampon est limitée à 64 kilo-octets (pour StretchBlt()) et 192 kilo-octets (pour StretchDIBits()). Si la mise à l'échelle facteurs ou multiplicateurs sont volumineuses, il n'est pas possible pour StretchBlt() allouer un tampon à la fois inférieure à 64 kilo-octets (Ko), et suffisamment grands pour gérer une seule bande. De même, StretchDIBits() peut de ne pas pouvoir allouer un tampon de taille est inférieur à 192 Ko peut prendre en charge une bande unique.

Étant donné les mesures d'affichage 1024 x 768 x 256 couleurs et une bitmap 16 x 16 source, StretchBlt() échoue en raison de conditions aux limites dans la méthode de recherche qui est utilisé pour demander la taille du tampon optimal, mais devrait réussir si l'image bitmap source était 18 x 18 ou supérieure.

Plus d'informations

Pour plus d'informations sur pourquoi StretchBlt() peut échouer, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
92529Information : Reasons for cas d'échec de fonctions de bitmap
Pour plus d'informations sur la façon dont ce problème affecte Desktop Web multimédia, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
269595PRB : Papier peint Active Desktop brouillé
Pour plus d'informations sur ce problème et Microsoft Windows 3.x, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
111865BOGUE : StretchBlt()/StretchDIBits() Fail avec Stretch très grande

Propriétés

Numéro d'article: 269585 - Dernière mise à jour: vendredi 7 février 2014 - Version: 1.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows 98 Deuxième Édition
  • Microsoft Windows 98 Standard Edition
  • Microsoft Windows 95
  • Microsoft Windows Millennium Edition
Mots-clés : 
kbnosurvey kbarchive kbmt kbdisplay kbprb KB269585 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 269585
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com