我正在尝试使用 WIA 2.0 (Windows 7) 连接到相机(或照相手机,在我的情况下是 iPhone)并下载图片。
我不想将所有图片下载到 HDD 或内存中并生成缩略图以供预览,而是使用 WIA 2.0 的“缩略图数据”属性。但数据似乎很荒谬。文件的前 3455 个字节和后 3455 个字节为 0xff,中间夹着数据。如果我把它们脱掉并从位置 3456 开始(什么?!那是白痴在他的手提箱上的那种组合!)据我所知,我仍然没有得到有效的图像。
这是我在尝试处理相机上的图像时使用的代码。LoadThumbnail 函数应该获取二进制数据并将其以有用的格式存储。我只需要弄清楚那是什么格式。MSDN 说它是 32 位格式的 24 位 RGB,但如果前 3455 个字节是 0xff,它看起来就不是这样。
private void GetPictures()
{
string camreaid = _camera.DeviceID;
List<MyPicture> pictureList = new List<MyPicture>();
foreach (Item i in _camera.Items)
{
MyPicture pic = new MyPicture();
// Get created date property
foreach (Property p in i.Properties)
{
System.Diagnostics.Debug.WriteLine(p.Name);
dynamic propertyData = p.get_Value();
switch(p.Name) {
case "Item Name":
pic.Name = propertyData;
break;
case "Item Time Stamp":
// created date
pic.CreationDate = propertyData.Date;
break;
case "Thumbnail Data":
// thumbnail image
pic.LoadThumbnail( propertyData.BinaryData);
break;
}
}
}
}