Общие сведения о фильтрах обработки изображений
Фильтр обработки изображений является расширением WIA. Фильтр обработки изображений служит двум основным целям:
Чтобы разрешить разделять код обработки изображений от драйвера. Например, фильтр обработки изображений можно использовать для изменения яркости и контрастности изображения, а также для выполнения рабочего процесса и поворота. Фильтр обработки изображений находится в собственной библиотеке DLL, отдельной от библиотеки DLL драйвера пользовательского режима. Фильтр обработки изображений получает неотфильтрованные данные образов от драйвера, по которому выполняется фильтрация.
Для обеспечения точного просмотра в режиме реального времени. Фильтр обработки изображений используется из нового для Windows Vista компонента WIA Preview (описанного в документации по Microsoft Windows SDK), который обеспечивает точные динамические предварительные просмотры. В этом контексте "динамическая" означает, что приложению не придется повторно получать изображение из средства проверки после изменения нескольких параметров свойств, которые рассматриваются далее в этом разделе. Предварительные версии являются точными, так как фильтрация фактически выполняется компонентом поставщика в фактическом образе предварительного просмотра, а не просто случайным фильтром по полностью отдельному изображению.
Чтобы обеспечить точный предварительный просмотр, фильтр должен как минимум реализовывать свойства яркости и контрастности . Это значит, что общий пользовательский интерфейс, который предоставляет пользователю элементы управления яркостью и контрастностью, может отображать точные предварительные просмотры.
Фильтр обработки изображений всегда выполняется при сканировании изображения. Поэтому приложение не может получить изображение из сканера без применения фильтра обработки изображений. Приложению не нужно знать о фильтре.
Корпорация Майкрософт предоставляет компонент предварительной версии WIA, который кэширует исходное неотфильтрованное предварительное изображение, полученное из сканера. Компонент предварительного просмотра позволяет применить фильтр несколько раз к изображению без необходимости повторного получения изображения из сканера. Компонент WIA Preview обычно используется для предварительного просмотра изображений, когда приложение позволяет пользователю изменять параметры, такие как контрастность и яркость. Пока пользователь изменяет параметры, приложение может постоянно отображать результирующее изображение в области предварительного просмотра без необходимости повторного сканирования изображения.
Фильтр обработки изображений — это расширение WIA, работающее как внутрипроцессный com-компонент. В отличие от фильтра сегментации, приложение обычно не создает экземпляр самого фильтра обработки изображений путем вызова IWiaItem2::GetExtension (описано в документации по Windows SDK). Вместо этого приложение создаст экземпляр компонента WIA Preview, который, в свою очередь, загрузит фактический фильтр обработки изображений с помощью метода IWiaItem2::GetExtension . Фильтр обработки изображений также вызывается автоматически, когда приложение вызывает IWiaTransfer::D ownload.
Фильтр обработки изображений привязан к драйверу и обычно распределяется вместе с драйвером. Компонент WIA Preview доступен в sti.dll и поставляется вместе с операционной системой.
На следующем рисунке показан фильтр обработки изображений, загружаемый компонентами WIA в процесс приложения. Обратите внимание, что в процессе приложения одновременно может быть загружено несколько экземпляров фильтра обработки изображений, поэтому при записи фильтра необходимо соблюдать осторожность. Например, если используются глобальные (статические) переменные, модуль записи фильтров должен обеспечить правильную синхронизацию.