1

大家好,我有一个问题,我相信最终会出现一个小的语法问题。我希望。我正在使用 c# 在 Windows 7 机器上使用 WIA 2.0 将相机中的数据提取到应用程序中。问题涉及时间戳。在我检查它的时间戳是否在一个范围内之前,我不想传输图像。这是代码的重要部分。这里的示例来自我的测试工具,我一举完成所有事情,而不是来自真实代码。同样,如果我忽略时间,我可以让一切正常工作,但这不是一个选择。

WIA.DeviceManager devMgr = new WIA.DeviceManager();  
foreach (DeviceInfo info in devMgr.DeviceInfos)   
{  
   if (info.Type == WiaDeviceType.CameraDeviceType) //grab the first camera   
   {   
     cameraDevice = info.Connect();   
     break;   
   }   
} 

这里在相机中有一个 i 项目的循环(此时每个项目都是一张图片)

WIA.Item item = cameraDevice.Items[i];    
timestamp = item.Properties.get_Item("Item Time Stamp").get_Value().ToString();  

现在在最后一行它只是返回System.__ComObject。我不知道如何从这个对象中获取价值,我无法将它转换/转换为任何有用的东西,它没有我能找到的属性。谁能帮我从这个时间戳对象中获取价值?

顺便说一句,令人惊讶的是,在使用 c# 和 WIA 的人们的世界中,样本很少。只是在说。

4

2 回答 2

2

这就是你想要的:

Vector timeTakenVector = (Vector)item.Properties["Item Time Stamp"].get_Value();
DateTime timeTaken = timeTakenVector.Date;
于 2011-09-20T13:44:41.547 回答
0

这个可能对你有帮助

http://www.xtremevbtalk.com/archive/index.php/t-288758.html

于 2011-05-12T21:18:44.250 回答