通过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;
                }
            }
        }
   }

通过wia2.0从相机图像中获取缩略图数据

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位边界上对齐。"