我正在尝试使用WIA 2.0(Windows 7)连接摄像头(或拍照手机,iPhone,在我的情况下)并下载图片。通过WIA 2.0获取来自摄像头图像的缩略图数据
我想使用WIA 2.0的“缩略图数据”属性,而不是将所有图片下载到硬盘或内存中并生成缩略图以进行预览。但数据似乎无意义。该文件的第一个和最后一个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;
}
}
}
}
顶部和底部是否有很多白色?很难逆向设计MyPicture.LoadThumbnail()可能需要的格式。 –
不,它发生在每张照片上(或者至少是照相机的前10张),它们是随机分类的照片 - 我和我的朋友在玩电子游戏,在户外拍摄棒球比赛等等。 – siromega