Я пытаюсь использовать WIA 2.0 (Windows 7) для подключения к камере (или телефону с камерой, iPhone в моем случае) и загрузке изображений.
Вместо загрузки всех изображений на жесткий диск или в память и создания эскиза для предварительного просмотра я хотел бы использовать свойство WIA 2.0 «Данные эскиза». Но данные кажутся бессмысленными. Первые и последние 3455 байт файла имеют значение 0xff, а данные расположены посередине. Если я уберу их и начну с позиции 3456 (Что?! Вот такая комбинация будет у идиота на чемодане!) Я все равно не получу достоверного изображения, насколько я могу судить.
Вот код, который я использую при попытке обработать изображения на камере. Предполагается, что функция LoadThumbnail принимает двоичные данные и сохраняет их в удобном формате. Мне просто нужно выяснить, что это за формат. MSDN говорит, что это 24-битный RGB в 32-битном формате, но это не выглядит так, если первые 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;
}
}
}
}