Extensions JPEG et PNG pour des fonctions et des structures bitmap spécifiques

Sur certaines versions de Microsoft Windows, les fonctions StretchDIBits et SetDIBitsToDevice permettent de transmettre des images JPEG et PNG en tant qu’image source aux périphériques d’imprimante. Cette extension n’est pas destinée à fournir une décompression générale JPEG et PNG aux applications, mais plutôt à permettre aux applications d’envoyer des images compressées JPEG et PNG directement aux imprimantes qui prennent en charge matériellement les images JPEG et PNG.

Les structures BITMAPINFOHEADER, BITMAPV4HEADER et BITMAPV5HEADER sont étendues pour permettre la spécification de valeurs de biCompression indiquant que les données bitmap sont une image JPEG ou PNG. Ces valeurs de compression ne sont valides que pour SetDIBitsToDevice et StretchDIBits lorsque le paramètre hdc spécifie un périphérique d’imprimante. Pour prendre en charge le spoulage de métafichier de l’imprimante, l’application ne doit pas s’appuyer sur la valeur de retour pour déterminer si l’appareil prend en charge le fichier JPEG ou PNG. L’application doit émettre QUERYESCSUPPORT avec l’échappement correspondant avant d’appeler SetDIBitsToDevice et StretchDIBits. Si l’échappement de validation échoue, l’application doit alors se replier sur sa propre prise en charge JPEG ou PNG pour décompresser l’image dans une bitmap.