WIA. Сканирование красочных изображений в Windows XP c # - PullRequest
2 голосов
/ 22 декабря 2011

Я пытаюсь сканировать документы с помощью библиотеки WIA в Windows XP и Windows 7. Вот код:

Device _scannerDevice;
CommonDialog _scannDialog;

if (_scannerDevice != null)
{
    WIA.Item Item = _scannerDevice.Items[1] as WIA.Item;

    WIA.ImageFile wiaImage = null;
    //setting dpi
    Item.Properties["6147"].set_Value(dpi);
    Item.Properties["6148"].set_Value(dpi);
    //setting start coordinates
    Item.Properties["6149"].set_Value(0);
    Item.Properties["6150"].set_Value(0);
    //setting width and height
    Item.Properties["6151"].set_Value(width);
    Item.Properties["6152"].set_Value(height);
    //1 if colorful; 2 if gray
    Item.Properties["6146"].set_Value(1);

    //start scan
    wiaImage = (ImageFile)_scannDialog.ShowTransfer(Item, wiaFormatJPEG, false);
    if (wiaImage.FileData != null)
    {
       WIA.Vector vector = wiaImage.FileData;
       _image = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));               
     }
 }

Я получаю изображение успешно, но в Windows XP это НЕ ЦВЕТНО . Когда я сканирую тот же документ в Windows 7, я получаю ЦВЕТНОЕ изображение, как и ожидалось. Может быть, я пропустил какую-то недвижимость? Как получить красочное изображение на Windows XP?

ПРИМЕЧАНИЕ: Я использую метод ShowTransfer, чтобы игнорировать все окна со сканера, при этом методе я вижу только ProgressBar.

1 Ответ

3 голосов
/ 22 декабря 2011

Попробуйте добавить этот установщик свойства явно:

Item.Properties["4104"].set_Value(24); // 24-bit color
...