Я пытаюсь использовать 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;
}
}
}
}