特定のバージョンの Microsoft Windows では、StretchDIBits および SetDIBitsToDevice 関数を使用すると、JPEG および PNG イメージをソース イメージとしてプリンター デバイスに渡すことができます。 この拡張機能は、一般的な JPEG および PNG 展開をアプリケーションに提供するための手段ではなく、JPEG および PNG 圧縮された画像を、JPEG および PNG イメージのハードウェア サポートを持つプリンターに直接送信できるようにするためのものです。
BITMAPINFOHEADER、BITMAPV4HEADER、および BITMAPV5HEADER 構造体が拡張され、ビットマップ データが JPEG または PNG 画像であることを示す biCompression 値 指定できます。 これらの圧縮値は、hdc パラメーターでプリンター デバイスが指定されている場合に、SetDIBitsToDevice と StretchDIBits に対してのみ有効です。 プリンターのメタファイル・スプールをサポートするために、アプリケーションは戻り値に依存して、デバイスが JPEG ファイルと PNG ファイルのどちらをサポートしているかを判別しないでください。 アプリケーションは、SetDIBitsToDevice を呼び出し、StretchDIBits をする前に、対応するエスケープを使用して QUERYESCSUPPORT を発行する必要があります。 検証エスケープが失敗した場合、アプリケーションは独自の JPEG または PNG サポートにフォールバックして、イメージをビットマップに展開する必要があります。