WIA Scan, изменить несколько свойств - PullRequest
0 голосов
/ 30 марта 2020

В настоящее время я работаю над приложением, которое должно сканировать изображения. Он успешно сканирует эти изображения, но при попытке изменить свойства сканирования устройства он использует только последнее измененное свойство.

Мой текущий код для изменения свойств выглядит следующим образом:

public static string Scan()
{
    WIA.Device scanner = ScannerManager.Scanner.Connect();
    IItem scannerItem = scanner.Items[1];
    AdjustWiaSettings(scannerItem);
    ImageFile imageFile = (ImageFile)scannerItem.Transfer(FormatID.wiaFormatTIFF);
    return SaveScannedFile(imageFile);
}

private static void AdjustWiaSettings(IItem scannerItem)
{
    const string WIA_SCAN_COMPRESSION = "4107"; // valid values: 0,5,8
    const string WIA_SCAN_COLORING = "6146"; //4 is Black-white, 2 is gray, 1 is color
    SetWiaProperty(scannerItem.Properties, WIA_SCAN_COMPRESSION, 5);
    SetWiaProperty(scannerItem.Properties, WIA_SCAN_COLORING, 4);
}

private static void SetWiaProperty(IProperties properties, object propName, object propValue)
{
    Property prop = properties.get_Item(ref propName);
    prop.set_Value(ref propValue);
}

Это только изменяет свойство окраски этих двух, но если две функции SetWiaProperty переключаются, это только изменяет свойство сжатия.

Я пробовал другой подход, перебирающий все свойства, но это дал тот же результат.

1 Ответ

0 голосов
/ 30 марта 2020

Проблема здесь была только частично с WIA. Настройка свойств WIA, кажется, должна быть в порядке свойства. Если все сделано правильно, размер файла исходящего сканирования в приведенном выше примере составляет около 1 МБ (вместо 30+ МБ).

Реальная проблема заключалась в том, что MagickImage использовался для преобразования файла в формат .pdf. Я только проверял этот файл .pdf, не проверяя результаты самого сканирования. Полученный размер файла заставил меня поверить, что использовалось только одно свойство, когда Infact MagickImage с базовыми c входами без изменения каких-либо свойств для метода преобразования увеличил размер файла с 1 МБ до 13 МБ на страницу.

...