Windows 图像采集 (WIA)
Windows 映像采集 (WIA) 是 Windows 系列操作系统中的静态映像获取平台,从 Windows Millennium Edition (Windows Me) 和 Windows XP 开始。
简介
WIA 平台使图像处理/图形应用程序能够与图像处理硬件进行交互,并标准化不同应用程序和扫描仪之间的交互。 这样,这些不同的应用程序就可以与这些不同的扫描仪通信并与之交互,而无需应用程序编写者和扫描仪制造商为每个应用程序设备组合自定义其应用程序或驱动程序。
Windows 映像获取 2.0 的优点
WIA 为需要与图像处理硬件交互的应用程序开发人员、设备制造商和扫描仪用户提供优势。
对于应用程序编写器
- Windows 运行 WIA 驱动程序的认证过程,因此可以保证 WIA 应用程序与所有基于 WIA 的扫描程序基本兼容。
- WIA 驱动程序在 WIA 服务过程中加载,从而提供更稳定的驱动程序环境。
- 可以通过 WIA 子系统支持的推送事件从扫描程序扫描按钮启动应用程序。
- WIA 包括所有驱动程序都可以利用的默认分段筛选器;这样,应用程序就不必为多区域扫描编写代码,例如分离分布在平板扫描仪上的大量照片。
对于设备制造商
- WIA 驱动程序认证过程可帮助驱动程序开发人员确定其驱动程序符合 WIA。
- WIA 驱动程序可以利用内置分段筛选器、图像处理筛选器和错误处理程序(如果它们选择这样做)。
- 基于 WIA 的扫描程序通过 Windows 扫描应用程序(如 Windows 传真和扫描和画图)在 Windows 上开箱即用。
- WIA 驱动程序提供更好的与 Windows 的集成,例如完整的设备体验。
- Windows Vista 版本包含 WSD-WIA 类驱动程序,该驱动程序使所有符合 Web Services for Scanner (WS-Scan) 协议的设备无需任何其他驱动程序或软件即可使用 WIA 应用程序。
对于扫描仪用户
- 基于 WIA 的扫描程序可以从 Windows 应用程序(如 Windows 传真和扫描和画图)中使用,而无需任何其他软件。
- 基于 WIA 的应用程序和扫描程序还可以利用 WIA 加载项(例如分段筛选器),这些加载项可实现诸如在扫描程序上处理大量图片以及将它们全部扫描到单个文件等功能,而无需用户干预。
- 基于 WIA 的设备提供与其他 Windows 功能(例如 Windows 7 的设备阶段功能)更好的集成。
- WIA 通过隔离驱动程序和应用程序提供更可靠、更稳定、更可靠的扫描体验。
Windows 映像获取的开发
Windows 2000 和 Windows 95 或更高版本中的映像体系结构包括一个低级别硬件抽象、静态图像体系结构 (STI) ,以及一组称为 TWAIN 的高级 API。 在 Windows XP 和 Windows Me 中引入了 WIA。 WIA 是基于 STI 构建的映像体系结构,不需要 TWAIN,尽管 TWAIN 仍与 WIA 一起受支持。
WIA 1.0 在 Windows Me 和 Windows XP 中引入,支持扫描仪、数码相机和数字视频设备。 WIA 2.0 随 Windows Vista 一起发布。 WIA 2.0 面向扫描仪,但仍通过 WIA 服务提供的 WIA 1.0 到 WIA 2.0 兼容层继续为旧版 WIA 1.0 应用程序和设备提供支持。 但是,Windows Vista 的 WIA 中删除了视频内容支持。 建议将来使用适用于数码相机和数字视频设备的 Windows 便携式设备 (WPD) API。 WINDOWS Vista 和 Windows 7 上仍直接支持 WIA 1.0 和 STI TWAIN 驱动程序以及本机 WIA 2.0 设备驱动程序和映像应用程序。
Windows 映像获取概述
WIA 提供了一个框架,允许设备向操作系统呈现其独特的功能,并允许映像应用程序调用这些独特的功能。
WIA 平台包括一个数据收集协议、一个设备驱动程序模型和接口 (DDI) 、一个 API 和一个专用 WIA 服务。 该平台还包括一组内置内核模式驱动程序,这些驱动程序支持通过 USB、串行/并行、SCSI 和 FireWire 接口与本地连接的映像设备通信。 WIA 子系统还包括一个透明兼容层,允许与 TWAIN 兼容的应用程序使用和使用基于 WIA 驱动程序的设备。
支持 Web Services for Devices (WSD) 协议的网络连接映像设备也可以通过作为 Windows Vista 的一部分提供的 WSD-WIA 类驱动程序,从 Windows Vista 和 Windows 7 上符合 WIA 标准的映像应用程序使用。 类驱动程序将 WIA 调用转换为 WSD 调用,反之亦然,使现有的 WIA 应用程序无需任何其他驱动程序即可使用基于 WSD 的扫描程序。
WIA 驱动程序由用户界面 (UI) 组件和核心驱动程序组件组成,这些组件加载到两个不同的进程空间:应用程序空间中的 UI 和 WIA 服务空间中的驱动程序核心。 该服务在 Windows XP 的本地系统上下文中运行,并在从 Windows Server 2003 和 Windows Vista 开始的本地服务上下文中运行,以增强针对 buggy 或恶意驱动程序的安全性。
WIA API 集通过提供对以下项的支持,将图像处理应用程序公开给静止图像采集硬件功能:
- 可用图像采集设备的枚举。
- 同时创建与多个设备的连接。
- 以标准且可扩展的方式查询设备的属性。
- 使用标准和高性能传输机制获取设备数据。
- 跨数据传输维护图像属性。
- 设备状态和扫描事件处理的通知。
Windows 在 2002 年发布了 WIA 自动化库,该库作为 Windows 映像获取 (WIA) 自动化层合并,并继续成为 Windows 7 的一部分,从而向 WIA 添加了脚本支持。 WIA 自动化库为启用自动化的应用程序开发环境和编程语言(如 Microsoft Visual Basic 6.0、Active Server Pages (ASP) 、VBScript 和 C#)提供端到端映像获取功能。
对于 Windows 7,WIA API 提供额外的支持来补充现有的推送扫描支持。
- 自动配置的设备启动扫描,扫描参数在设备前面板上的扫描程序上配置。
- 设备启动的扫描的自动源选择。
有关 Windows 映像获取 2.0 的事实
- WIA 2.0 中的数据传输机制基于流。 流抽象消除了不同传输类型之间的区别,还允许在设备和应用程序之间交换相互商定的元数据。
- WIA 2.0 子系统还包括一个基本的图像处理筛选器驱动程序加载项,如果驱动程序选择提供自定义的图像处理筛选器,则可以由扫描程序驱动程序选择性地替换该加载项。 内置筛选器支持对通过扫描程序获取的图像进行后处理。 图像处理筛选器还会在调整亮度和对比度等小设置时启用实时软件预览。
- 分段筛选器是另一个方便的 WIA 组件,可由扫描程序驱动程序更自定义的筛选器替换。 分段筛选器可用于多区域扫描。 例如,多区域扫描允许应用程序自动检测不同的扫描区域,而无需任何用户干预,例如识别随机躺在扫描仪平板上的一组照片。
- WIA 2.0 提供可替换/可扩展的错误处理程序,用于正常处理软件、硬件和配置错误和延迟,并可能从中恢复。 错误处理程序是另一个 WIA 组件,可以由扫描程序驱动程序将其替换为更自定义的版本。 此扩展在数据获取期间提供状态和错误消息,例如“灯预热”、“键盘盖打开”、“卡纸”等。 此扩展还允许更简洁地支持“取消操作”。
面向开发人员
WIA API 专为 C/C++ 程序员设计。 需要熟悉 Windows GUI 和组件对象模型 (COM) 接口。
对于熟悉 Microsoft Visual Basic 6.0、Active Server Pages (ASP) 或脚本的开发人员,WIA 为 Windows XP Service Pack 1 (SP1) 或更高版本提供了一个自动化层,该层基于 C/C++ 提供的基础构建并简化了对基础的访问。 有关自动化层的信息,请参阅 Windows 映像获取自动化层。
注意
WIA 自动化层取代 Windows 映像采集 (WIA) 1.0 脚本。
运行时要求
使用 WIA API 的应用程序需要 Windows XP 或更高版本。
WIA 主题
WIA 主题按下表所示进行组织。
主题 | 说明 |
---|---|
关于 Windows 映像获取 | 有关 WIA 的一般信息 |
Windows 图像采集驱动程序 | WIA 驱动程序开发 |
Windows 映像采集自动化层 | WIA 自动化层 |
WIA 教程 | 软件开发工具包 (SDK) 中包含的代码演练,这些代码侧重于特定任务 |
引用 | 有关 C/C++ 和脚本中使用的 WIA 接口、方法、对象和数据类型的信息。 |