处理颜色格式
重要
建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) ,自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅 打印支持应用设计指南。
打印机支持的每个颜色格式都指定为 ColorMode 功能的选项。 通过使用 ColorMode 功能的选项属性,可以描述打印机接受的每种颜色格式。 下表说明了 Unidrv 可以处理的颜色数据格式。
颜色平面数 | 每像素的位数 |
---|---|
in Device (*DevNumOfPlanes) | 设备 (*DevBPP) |
1 | 1 (黑白) |
1 | 8 |
1 | 24 |
3 | 1 (CMY 和 RGB) |
4 | 1 (CMYK) |
对于这些格式,Unidrv 可以将 设备无关的位图 (DIB) 数据转换为正确的格式,并将其发送到打印机。 使用 Unidrv.) 中介绍了可对此数据执行的 (半调操作
如果打印机支持上表中未列出的颜色格式,则必须执行以下操作:
将 *DevNumOfPlanes 和 *DevBPP 属性设置为零。 这样做会阻止 Unidrv 将 DIB 数据发送到打印机。
提供实现 IPrintOemUni ImageProcessing 方法的呈现插件。
IPrintOemUni ImageProcessing 方法必须执行以下操作:
将 DIB 数据转换为打印机的颜色格式。
对数据执行半调运算。
将数据发送到打印后台处理程序。
有关提供 IPrintOemUni ImageProcessing 函数的详细信息,请参阅 自定义颜色格式。
呈现高质量图像
对于每种颜色格式,可以指定打印机硬件接受的每像素位数,以及 Unidrv 在创建 DIB 时要使用的每像素位数。 这些值分别使用 *DevBPP 和 *DrvBPP 属性指定。 有时,需要将图像呈现为位图,其每像素位数高于打印机可以处理 (,例如,尝试) 重现高质量照片。 因此,可以指定大于将 *DevBPP 值乘以 *DevNumOfPlanes 值的结果的 *DrvBPP 值。
例如,假设你想要定义一个 ColorMode 选项,该选项导致图像呈现为 24 位/像素位图,但随后希望位图作为 CMYK 数据发送到打印机。 可以按如下所示定义此模式:
*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 可以呈现然后发送到打印机的四平面、每平面一位 CMYK 格式。 但是,在这种情况下,在打印呈现的图像之前,必须对它执行半调运算。 必须使用微型驱动程序提供的半调。