我正在使用 WIA(Windows 图像采集)从相机中抓取照片。使用 WIA 2.0、.net 4 C#,我的测试设备是 Nikon D90(是的,我实际上已插入)。所以场景是:
- 用户已将相机插入 PC
- 用户从相机本身拍摄照片
- 我的应用程序通过 WIA 下载图像
以上所有方法都有效。
我遇到的问题是从设备本身获取当前时间。我第一次从设备上得到时间,我得到了正确的时间,一切都很好。如果我再次运行我的应用程序,WIA 似乎会缓存我之前获得的时间并返回,这是没有用的。
// use the WIA.DeviceManager to get the deviceInfo (not shown)
var device = deviceInfo.Connect();
var prop = device.Properties["Device Time"];
Vector deviceTimeVector = (Vector)prop.get_Value();
var deviceTime = deviceTimeVector.Date;
有没有人在 WIA 上做过一些工作,知道如何可靠地从设备中获取当前时间?我试过同步,但这似乎没有任何效果。
_device.ExecuteCommand(WIA.CommandID.wiaCommandSynchronize);
也接受建议。我在想我唯一的另一种方法是通过试拍来“校准”设备,检查这张照片的拍摄时间,但这也有问题。
如果您需要任何信息,请告诉我。