Extensões JPEG e PNG para funções e estruturas de bitmap específicas
Em determinadas versões do Microsoft Windows, as funções StretchDIBits e SetDIBitsToDevice permitem que imagens JPEG e PNG sejam passadas como a imagem de origem para dispositivos de impressora. Essa extensão não se destina como um meio de fornecer descompactação geral de JPEG e PNG para aplicativos, mas sim para permitir que os aplicativos enviem imagens compactadas por JPEG e PNG diretamente para impressoras que têm suporte de hardware para imagens JPEG e PNG.
As estruturas BITMAPINFOHEADER, BITMAPV4HEADER e BITMAPV5HEADER são estendidas para permitir a especificação de valores biCompression indicando que os dados de bitmap são uma imagem JPEG ou PNG. Esses valores de compactação só são válidos para SetDIBitsToDevice e StretchDIBits quando o parâmetro hdc especifica um dispositivo de impressora. Para dar suporte ao spool de metafile da impressora, o aplicativo não deve contar com o valor retornado para determinar se o dispositivo dá suporte ao arquivo JPEG ou PNG. O aplicativo deve emitir QUERYESCSUPPORT com o escape correspondente antes de chamar SetDIBitsToDevice e StretchDIBits. Se o escape de validação falhar, o aplicativo deverá, então, fazer fallback em seu próprio suporte a JPEG ou PNG para descompactar a imagem em um bitmap.