次の方法で共有


色形式の処理

重要

Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。

プリンターでサポートされる各色形式は、ColorMode 機能のオプションとして指定されます。 ColorMode 機能のオプション属性を使用すると、プリンターが受け入れる各色形式を記述できます。 次の表は、Unidrv で処理できる色データ形式を示しています。

カラー プレーンの数 ピクセルあたりのビット数
デバイス内 (*DevNumOfPlanes) デバイス内 (*DevBPP)
1 1 (モノクロ)
1 8
1 24
3 1 (CMY と RGB)
4 1 (CMYK)

これらの形式の場合、Unidrv はデバイスに依存しないビットマップ (DIB) データを適切な形式に変換し、プリンターに送信できます。 (このデータに対して実行できるハーフトニング操作については、「Unidrv でのハーフトニング」で説明します。)

前の表に記載されていない色形式がプリンターでサポートされている場合は、次の操作を行う必要があります。

IPrintOemUni ImageProcessing メソッドは、次の操作を実行する必要があります。

  • DIB データをプリンターのカラー形式に変換します。

  • データに対してハーフトーン処理を実行します。

  • データを印刷スプーラーに送信します。

IPrintOemUni ImageProcessing 関数の提供の詳細については、「カスタマイズされた色形式」を参照してください。

高品質の画像のレンダリング

カラー形式ごとに、プリンタ ハードウェアが受け入れるピクセルあたりのビット数と、DIB の作成時に Unidrv で使用するピクセルあたりのビット数の両方を指定します。 これらの値は、それぞれ *DevBPP 属性と *DrvBPP 属性で指定されます。 場合によっては、画像を、プリンターが処理できるピクセルあたりのビット数よりも高いビットマップとしてレンダリングすることが望ましいことがあります (たとえば、高品質の写真を再現するため)。 したがって、*DevBPP 値に *DevNumOfPlanes 値を乗算した結果より大きい *DrvBPP 値を指定できます。

たとえば、イメージを 24 ビット/ピクセル ビットマップとしてレンダリングし、CMYK データとしてビットマップをプリンターに送信する ColorMode オプションを定義するとします。 このモードは次のように定義できます。

*Feature: ColorMode
{
    *Option: 24toCMYK
    {
        *Name: "Photographic Quality"
        *DrvBPP: 24
        *DevNumOfPlanes: 4
        *DevBPP: 1
        *ColorPlaneOrder: LIST(CYAN, MAGENTA, YELLOW, BLACK)
        *IPCallbackID: 1
    }
 other options
}

この例では、*DevBPP 属性と *DevNumOfPlanes 属性は、Unidrv がレンダリングしてプリンターに送信できる 4 プレーンの 1 ビット単位 CMYK 形式を表します。 ただし、この場合は、イメージを印刷する前に、レンダリングされたイメージに対してハーフトニング操作を実行する必要があります。 ミニドライバー提供のハーフトーンを使用する必要があります。