IWiaImageFilter 接口
IWiaImageFilter 接口是由图像处理筛选器开发人员实现的扩展接口,由 Windows 映像采集 (WIA) 2.0 调用。
成员
IWiaImageFilter 接口继承自 IUnknown 接口。 IWiaImageFilter 还具有以下类型的成员:
方法
IWiaImageFilter 接口具有这些方法。
方法 | 说明 |
---|---|
ApplyProperties | 使图像处理筛选器能够将属性写回到驱动程序 (和设备) 。 |
FilterPreviewImage | 筛选预览图像。 |
InitializeFilter | 初始化筛选器。 在每个映像下载之前由 WIA 2.0 调用。 |
SetNewCallback | 为要用于转发调用的图像处理筛选器设置新的应用程序回调。 |
备注
图像处理筛选器开发人员应实现此接口和 IWiaTransferCallback 接口。
WIA 2.0 调用筛选器方法。 它们永远不会直接从应用程序调用。
Microsoft 提供 WIA 2.0 预览组件,用于缓存从扫描程序获取的原始未筛选预览图像。 应用程序使用 CoCreateInstance 共同创建 WIA 2.0 预览组件 (CLSID_WiaPreview) 的实例,该实例使用 IWiaItem2::GetExtension 加载筛选器。 当应用程序调用 IWiaTransfer::D ownload 时,将自动调用筛选器。
扫描图像时,始终执行图像处理筛选器。 在未首先应用图像筛选器的情况下,应用程序无法从扫描仪获取图像。
筛选器必须至少实现亮度和对比度。 向用户提供亮度和对比度控件的通用 UI 可以向用户显示准确的预览。
图像处理筛选器绝不应修改 WiaTransferParams 结构的 lMessage 成员。
若要读取所需的属性,图像处理筛选器应在它通过调用 IWiaImageFilter::QueryInterface 从项获取的 IWiaPropertyStorage 接口上调用 IWiaPropertyStorage::GetPropertyStream。 然后,筛选器可以实例化此流上的 IPropertyStorage 实例,以读取项属性。 图像处理筛选器不应直接调用 IWiaPropertyStorage::ReadMultiple ,因为此方法调用驱动程序, drvReadItemProperties
但 WIA 2.0 服务已在调用中 drvAcquireItemData
锁定驱动程序,因此此调用将超时并失败。
例如,筛选器感兴趣的属性可以是亮度和对比度设置。 筛选器通常还需要从 pWiaItem2 读取图像格式以及预览属性WIA_DPS_PREVIEW。 这些属性都在筛选过程中使用。
WIA 2.0 组件始终将未筛选的数据写入图像处理筛选器。 由筛选器流实现的图像处理算法可以多次筛选数据,并且不必考虑生成与筛选一次数据相同的结果。
筛选器必须注意 WIA_DPS_PREVIEW 属性,尤其是在硬件中处理某些与筛选器相关的任务时。 例如,某个驱动程序可以根据应用程序将亮度设置为 WIA 2.0 项的方式更改扫描仪硬件中的灯的亮度。 在最终扫描 (,当应用程序调用 IWiaTransfer::D ownload) 驱动程序通常会修改扫描仪的物理灯。 在这种情况下,图像处理筛选器可能根本不需要执行任何亮度处理。 但是,在预览扫描期间,驱动程序不应修改灯的亮度,而应仅在图像处理筛选器中处理。 WIA 2.0 预览组件和图像处理筛选器必须基于在项中设置的属性返回准确的图像。
图像处理筛选器必须支持驱动程序支持的所有图像格式。
始终会向图像处理筛选器提供一个对应于我们获取图像的项中设置的选择区域的图像。 但请注意,如果驱动程序支持 WIA_IPS_ROTATION 属性,则映像可能已由驱动程序轮换。
当应用程序调用 IWiaPreview::GetNewPreview 或 IWiaTransfer::D ownload 时,图像处理筛选器通过 IWiaItem2::GetExtension 创建,通常不是由应用程序创建,而是由 WIA 2.0 组件创建。
IWiaImageFilter 接口(与所有组件对象模型 (COM) 接口一样)继承 IUnknown 接口方法。
IUnknown 方法 | 说明 |
---|---|
IUnknown::QueryInterface | 返回指向受支持接口的指针。 |
IUnknown::AddRef | 递增引用数。 |
IUnknown::Release | 递减引用数。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
IDL |
|