通过wia2.0从相机图像中获取缩略图数据
本文关键字:获取 略图 数据 图像 wia2 相机 通过 | 更新日期: 2023-09-27 18:08:43
我正在尝试使用wia2.0 (Windows 7)连接相机(或照相手机,在我的情况下是iPhone)并下载图片。
我想使用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;
}
}
}
}
From this:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff548420 (v = vs.85) . aspx
看起来缩略图数据是原始的rgb(你从属性WIA_IPC_THUMB_WIDTH
和_HEIGHT
获得缩略图的宽度和高度)
"……然后,应用程序读取WIA_IPC_THUMBNAIL属性以获取实际的缩略图数据。缩略图数据应该是未压缩的,每像素24位数据在32位边界上对齐。"