基于WIA的QT扫描仪程序

基于WIA的扫描仪程序,QT编写的,调用WIA api获取扫描仪属性,控制扫描仪,WIA提供了自带界面的方法,因为要嵌入自己的程序,所以我没有使用WIA自带的界面,Demo在Github上面,Github自取。详细资料请看官方文档

目录

  1. 简介
  2. 创建WIA设备管理器
  3. 枚举系统设备
  4. 读取设备属性
  5. 创建设备
  6. 传输图像数据

1.简介

Windows图像采集(WIA)是Windows操作系统家族中的静止图像采集平台,从Windows Millennium Edition(Windows Me)和Windows XP开始。WIA平台使成像/图形应用程序可以与成像硬件进行交互,并标准化不同应用程序和扫描仪之间的交互。这允许那些不同的应用程序与这些不同的扫描仪进行对话并交互,而无需应用程序编写器和扫描仪制造商针对每种应用程序-设备组合自定义其应用程序或驱动程序。
在这里插入图片描述

  1. Windows为WIA驱动程序运行认证过程,因此,可以确保WIA应用程序与所有基于WIA的扫描仪基本兼容。
  2. WIA驱动程序已加载到WIA服务进程中,从而提供了更稳定的驱动程序环境。
  3. 可以通过WIA子系统支持的推送事件从扫描仪扫描按钮启动应用程序。
  4. WIA包括所有驱动程序都可以利用的默认分段过滤器;这样,应用程序不必为进行多区域扫描而编写代码,而无需将诸如散布在平板扫描仪上的大量照片分离出来的目的。
    在这里插入图片描述

2.创建WIA设备管理器

使用Windows Image Acquisition(WIA)服务的第一步是获取IWiaDevMgr接口指针,CLSID_WiaDevMgr和IID_IWiaDevMgr是WIA常数表示类ID和的接口ID IWiaDevMgr分别。CoCreateInstance调用的dwClsContext参数的值必须为CLSCTX_LOCAL_SERVER。

IWiaDevMgr *pWiaDevMgr = nullptr;
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr, (void**)&pWiaDevMgr );

3.枚举系统设备

使用IWiaDevMgr :: EnumDeviceInfo方法来枚举系统上安装的Windows Image Acquisition(WIA)设备。此方法为设备的属性创建一个枚举对象,并返回一个指向该枚举对象支持的IEnumWIA_DEV_INFO接口的指针。然后,可以使用IEnumWIA_DEV_INFO接口的方法来获取系统上安装的每个设备的IWiaPropertyStorage接口指针。

 IEnumWIA_DEV_INFO *pWiaEnumDevInfo = NULL;
 HRESULT hr = pWiaDevMgr->EnumDeviceInfo( WIA_DEVINFO_ENUM_ALL, &pWiaEnumDevInfo );
 if (SUCCEEDED(hr))
 {
	// Loop until you get an error or pWiaEnumDevInfo->Next returns
	// S_FALSE to signal the end of the list.
	 while (S_OK == hr)
	 {
		// Get the next device's property storage interface pointer
   	 	IWiaPropertyStorage *pWiaPropertyStorage = NULL;
   		hr = pWiaEnumDevInfo->Next( 1, &pWiaPropertyStorage, NULL );
   		//..................接下来是获取设备信息并且创建设备,见第4节与第5节
 	 }
 }

4.读取设备属性

IWiaPropertyStorage接口读取和写入设备属性,设备属性包括有关设备的信息,这些信息描述了设备的功能和设置。有关这些属性的列表,请参见设备属性

		PROPSPEC PropSpec[3] = {0};
        PROPVARIANT PropVar[3] = {0};

        //
        // How many properties are you query
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值