平板扫描仪的基本扫描

WIA 应用程序枚举扫描程序项树中的根项和顶级子项,以确定扫描程序支持的功能。 然后,应用程序使用此子项作为扫描源。 例如,平板扫描仪项目用于从平板扫描,而送纸器项用于从文档馈送器扫描,等等。

Windows Vista 中平板项目的编程和扫描行为与 Windows XP 和 Windows Me 使用的重载系统相同。 此重载系统通过将所有 WIA 属性标志放在项树中的第一个子项上来对项树中的第一个子项进行程序。

应用程序在对扫描仪的平板进行程序程序时通常会执行以下操作,但不一定按以下顺序执行:

  • 枚举顶级 WIA 项,并查找标记为 WiaItemTypeProgrammableDataSource 项标志且 WIA_IPA_ITEM_CATEGORY 属性设置为 WIA_CATEGORY_FLATBED 的项目。

  • 读取 WIA_IPA_TYMEDWIA_IPA_FORMAT 属性的有效值。

  • 通过设置 WIA_IPA_TYMED 属性选择内存传输或文件传输类型。 有关可用传输类型的详细信息,请参阅 数据传输。 对于基于 IStream 的传输,WIA_IPA_TYMED默认设置为 TYMED_FILE,不应更改。

  • 通过设置 WIA_IPA_FORMAT 属性,选择数据的最终格式。

  • 选择图像设置,例如 WIA_IPA_DEPTHWIA_IPA_DATATYPE

  • 使用此 WIA 项传输数据。

当驱动程序使用扫描仪的平板进行扫描时,通常会执行以下操作:

  1. 调用 IWiaMiniDrv::d rvValidateItemPropertiesIWiaMiniDrv::d rvReadItemProperties。 WIA 驱动程序应在应用程序的属性设置阶段验证任何属性设置。

  2. 调用 IWiaMiniDrv::d rvWriteItemProperties。 传入的 WIA 项上下文属于平板扫描仪项,以便驱动程序知道应用程序打算使用扫描仪的平板扫描。

  3. 调用 IWiaMiniDrv::d rvAcquireItemData。 传入的 WIA 项上下文属于平板扫描仪项,因此驱动程序可以轻松确定应用程序打算使用平板扫描。

  4. 对设备进行编程,并使用当前的平板项目属性从平板扫描。 如果 WIA 驱动程序未处于平板扫描模式,则应尝试切换到此模式进行扫描。 应用程序没有特殊的设置可以切换为使用平板。 使用平板项进行扫描是应用程序和驱动程序之间的协定;他们同意将平板用于数据传输。

驱动程序必须使用平板扫描仪项目上的 WIA 属性作为设置,才能在扫描之前应用于扫描仪的平板部分。 WIA 应用程序需要始终信任 WIA 驱动程序返回的数据的标头。 例如,如果扫描程序确定无法扫描指定宽度的图像,因此将值舍入为可以扫描的宽度,则驱动程序应使用修改后的宽度信息更新图像标头。 此更新可确保应用程序可以使用正确的信息。 WIA 驱动程序应尝试使用从设备返回的实际信息更新 WIA 属性。

平板扫描仪的高级扫描

可以通过手动配置或使用 WIA 分段筛选器自动从平板进行多区域扫描。 请注意,分段筛选器在可以和不能执行的操作上与应用程序没有什么不同。 应用程序可以直接运行分段筛选器所述的相同过程,以便为新的扫描区域创建子项。