2011-09-13 41 views
2

我正在尝试使用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; 
       } 
      } 
     } 
    } 
+0

顶部和底部是否有很多白色?很难逆向设计MyPicture.LoadThumbnail()可能需要的格式。 –

+0

不,它发生在每张照片上(或者至少是照相机的前10张),它们是随机分类的照片 - 我和我的朋友在玩电子游戏,在户外拍摄棒球比赛等等。 – siromega

回答

相关问题