Можно ли настроить параметры в сканере рабочего стола приложения UWP?

Мне удалось получить данные от планшетного сканера в моем приложении UWP.

using Windows.Devices.Enumeration;
using Windows.Devices.Scanners;

ImageScanner myScanner = await ImageScanner.FromIdAsync(deviceId);
var result = await myScanner.ScanFilesToFolderAsync(ImageScannerScanSource.Default, folder);

и даже использовать автоматически настроенный профиль сканирования

if (myScanner.IsScanSourceSupported(ImageScannerScanSource.AutoConfigured))
{
    ...
    // Scan API call to start scanning with Auto-Configured settings. 
    var result = await myScanner.ScanFilesToFolderAsync(
        ImageScannerScanSource.AutoConfigured, folder).AsTask(cancellationToken.Token, progress);
    ...
}

но есть ли способ, которым я могу управлять конфигурацией, получить более низкое разрешение или просто черно-белое? Все параметры формата кажутся свойствами только для чтения. Я пытался создать профиль внешнего сканера в Win10, но он не подхватывается (даже если он установлен по умолчанию). Похоже, что API знает о поддерживаемых сканером параметрах, поскольку эквивалентный вызов ScanToStream считывается в самом низком возможном разрешении в качестве предварительного просмотра.


person ShopDog    schedule 06.07.2016    source источник


Ответы (1)


есть ли способ, которым я могу управлять конфигурацией, получить более низкое разрешение или просто черно-белое

Конечно, проверьте ImageScanner.FlatbedConfiguration свойство

Класс ImageScannerFlatbedConfiguration включает несколько записываемые свойства, например: DesiredResolution и ColorMode< /а>

Пример установки формата файла сканирования в PNG и настройки желаемого разрешения:

if (scanner.IsScanSourceSupported(ImageScannerScanSource.Flatbed))
{

// Set the scan file format to PNG, if available
    if (scanner.FlatbedConfiguration != null)
    {
        if (scanner.FlatbedConfiguration.IsFormatSupported(ImageScannerFormat.Png))
        {
            scanner.FlatbedConfiguration.Format = ImageScannerFormat.Png;
        }

        scanner.FlatbedConfiguration.DesiredResolution = new ImageScannerResolution { DpiX = 200, DpiY = 200 };
    }

    this._cancellationToken = new CancellationTokenSource();

    var scanTask = scanner.ScanFilesToFolderAsync(ImageScannerScanSource.Flatbed, Windows.Storage.ApplicationData.Current.LocalFolder);
    scanTask.Progress = (info, progressInfo) => Debug.WriteLine("Page {0}", progressInfo);

    var scanResults = await scanTask.AsTask(this._cancellationToken.Token);
}

Ссылка: [WinRT] Как сканировать документы

person Franklin Chen - MSFT    schedule 11.07.2016