Интерфейс IWiaImageFilter
Интерфейс IWiaImageFilter — это интерфейс расширения, реализованный разработчиками фильтров обработки изображений и вызываемый Windows Image Acquisition (WIA) 2.0.
Элементы
Интерфейс IWiaImageFilter наследуется от интерфейса IUnknown . IWiaImageFilter также имеет следующие типы элементов:
Методы
Интерфейс IWiaImageFilter имеет эти методы.
Метод | Описание |
---|---|
ApplyProperties | Позволяет фильтру обработки изображений записывать свойства обратно в драйвер (и устройство). |
FilterPreviewImage | Фильтрует изображение предварительного просмотра. |
InitializeFilter | Инициализирует фильтр. Вызывается WIA 2.0 перед загрузкой каждого образа. |
SetNewCallback | Задает новый обратный вызов приложения для фильтра обработки изображений, который будет использоваться для переадресации вызовов. |
Remarks
Разработчики фильтров обработки изображений должны реализовать этот интерфейс и интерфейс IWiaTransferCallback .
WIA 2.0 вызывает методы фильтрации. Они никогда не вызываются непосредственно из приложения.
Корпорация Майкрософт предоставляет компонент предварительной версии WIA 2.0, который кэширует исходный нефильтрованный образ предварительной версии, полученный от сканера. Приложение использует CoCreateInstance для совместного создания экземпляра компонента предварительной версии WIA 2.0 (CLSID_WiaPreview), который загружает фильтр с помощью IWiaItem2::GetExtension. Фильтр вызывается автоматически, когда приложение вызывает IWiaTransfer::D ownload.
Фильтр обработки изображений всегда выполняется при сканировании изображения. Приложение не может получить изображение от сканера без применения фильтра изображений.
Фильтр должен реализовывать яркость и контрастность как минимум. Общий пользовательский интерфейс, предоставляющий элементы управления яркостью и контрастностью для пользователя, может отображать точные предварительные версии для пользователя.
Фильтр обработки изображений никогда не должен изменять член lMessage структуры WiaTransferParams .
Чтобы прочитать необходимые свойства, фильтр обработки изображений должен вызвать IWiaPropertyStorage::GetPropertyStream в интерфейсе IWiaPropertyStorage , который он получает от элемента, вызвав IWiaImageFilter::QueryInterface. Затем фильтр может создать экземпляр экземпляра IPropertyStorage в этом потоке для чтения свойств элементов. Фильтр обработки изображений не должен вызывать IWiaPropertyStorage::ReadMultiple напрямую, так как этот метод вызывает драйвер drvReadItemProperties
, но служба WIA 2.0 уже заблокировала драйвер в вызове, поэтому этот вызов будет истекать и завершаться сбоем drvAcquireItemData
.
Свойства, которые заинтересованы в фильтре, могут быть, например, параметры яркости и контрастности. Фильтр обычно также должен считывать формат изображения, а также свойство предварительного просмотра WIA_DPS_PREVIEW из pWiaItem2. Все эти свойства используются в процессе фильтрации.
Компоненты WIA 2.0 всегда записывают нефильтрованные данные в фильтр обработки изображений. Алгоритм обработки изображений, реализованный потоком фильтра, может фильтровать данные несколько раз и не должен беспокоиться о том, чтобы получить те же результаты, что и при фильтрации данных один раз.
Фильтр должен обратить внимание на свойство WIA_DPS_PREVIEW , особенно если некоторые задачи, связанные с фильтром, обрабатываются на оборудовании. Например, определенный драйвер может изменить яркость лампы на оборудовании сканера в зависимости от того, как приложение установило яркость в элемент WIA 2.0. Во время окончательной проверки (когда приложение вызывает IWiaTransfer::D ownload), драйвер обычно изменяет физическую лампу сканера. В этом случае фильтр обработки изображений может не выполнять обработку яркости вообще. Однако во время проверки предварительного просмотра драйвер не должен изменять яркость лампы. Вместо этого это следует учитывать исключительно в фильтре обработки изображений. Важно, чтобы компонент предварительной версии WIA 2.0 и фильтр обработки изображений возвращали точные изображения на основе свойств, заданных в элементе.
Фильтр обработки изображений должен поддерживать все форматы изображений, поддерживаемые драйвером.
Фильтр обработки изображений всегда получает изображение, соответствующее области выбора, заданной в элементе, для которого мы приобретаем изображение. Однако обратите внимание, что изображение, возможно, было повернуто драйвером, если оно поддерживает свойство WIA_IPS_ROTATION .
Фильтр обработки изображений создается с помощью IWiaItem2::GetExtension, обычно не приложением, а компонентами WIA 2.0, когда приложение вызывает IWiaPreview::GetNewPreview или IWiaTransfer::D ownload.
Интерфейс IWiaImageFilter , как и все интерфейсы COM, наследует методы интерфейса IUnknown .
Методы IUnknown | Описание: |
---|---|
IUnknown::QueryInterface | Возвращает указатели на поддерживаемые интерфейсы. |
IUnknown::AddRef | Увеличивает значение счетчика ссылок. |
IUnknown::Release | Уменьшает значение счетчика ссылок. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
IDL |
|