图像处理筛选器简介

图像处理筛选器是 WIA 扩展。 图像处理筛选器有两个主要用途:

  • 允许图像处理代码与驱动程序分离。 例如,图像处理筛选器可用于修改图像的亮度和对比度,以及执行偏转和旋转。 图像处理筛选器位于其自己的 DLL 中,独立于用户模式驱动程序 DLL。 图像处理筛选器从执行筛选的驱动程序接收未筛选的映像数据。

  • 启用准确的实时预览。 图像处理筛选器用于 Windows Vista WIA 预览版组件的新组件, (Microsoft Windows SDK文档) 中所述,提供准确的实时预览。 在此上下文中,“实时”意味着应用程序在更改一些属性设置后,无需重新获取扫描程序的图像,本节稍后将对此进行介绍。 预览是准确的,因为筛选实际上由供应商组件对实际预览图像执行,而不仅仅是对完全独立的图像执行随机筛选器。

为了提供准确的预览,筛选器应至少实现 亮度对比度 属性。 因此,向用户提供亮度和对比度控件的通用 UI 可以显示准确的预览。

扫描图像时,始终执行图像处理筛选器。 因此,在未首先应用图像处理筛选器的情况下,应用程序无法从扫描程序获取图像。 应用程序不需要知道筛选器。

Microsoft 提供 WIA 预览组件,用于缓存从扫描程序获取的原始未筛选预览图像。 借助预览组件,可以多次将筛选器应用于图像,而无需从扫描仪重新获取图像。 当应用程序允许用户更改设置(例如对比度和亮度)时,WIA 预览组件通常用于预览图像。 当用户更改设置时,应用程序可以在预览窗格中持续显示生成的图像,而无需重新扫描图像。

图像处理筛选器是 WIA 扩展,作为进程内 COM 组件运行。 与分段筛选器相比,应用程序通常不会通过调用 Windows SDK 文档) 中所述的 IWiaItem2::GetExtension (来创建图像处理筛选器本身的实例。 相反,应用程序将创建 WIA 预览组件的实例,而该实例将使用 IWiaItem2::GetExtension 方法加载实际的图像处理筛选器。 当应用程序调用 IWiaTransfer::D ownload 时,也会自动调用图像处理筛选器。

图像处理筛选器绑定到驱动程序,通常与驱动程序一起分发。 WIA 预览版组件在 sti.dll 中可用,并随操作系统一起提供。

下图显示了由 WIA 组件加载到应用程序进程中的图像处理筛选器。 请注意,图像处理筛选器的多个实例可以同时加载到应用程序的进程中,因此筛选器写入必须对此持谨慎态度。 例如,如果使用全局 (静态) 变量,筛选器编写器必须确保正确同步。

说明 wia 组件正在加载到应用程序进程中的图像处理筛选器的示意图。