Метод IWiaPreview::UpdatePreview
Возвращает неотфильтрованное изображение, кэшированное методом IWiaPreview::GetNewPreview .
Синтаксис
HRESULT UpdatePreview(
[in] LONG lOptions,
[in] IWiaItem2 *pChildWiaItem
);
Параметры
-
lOptions [in]
-
Тип: LONG
Указывает, требуется ли приложению компонент WIA 2.0 Preview для передачи подрегиона кэшированного образа или всего кэшированного образа фильтру обработки изображений.
-
WiaPreviewReturnOriginalImage
-
Передайте весь кэшированный образ в фильтр обработки изображений.
pChildWiaItem [in]
Тип: IWiaItem2*
Указывает указатель на элемент IWiaItem2 , который является дочерним элементом элемента IWiaItem2 , заданным параметром pWiaItem2 метода IWiaPreview::GetNewPreview . Или, если приложению требуется предварительный просмотр всего планшета, указывает указатель на параметр pWiaItem2 метода IWiaPreview::GetNewPreview . Если pChildWiaItem является дочерним элементом параметра pWiaItem2IWiaPreview::GetNewPreview, этот дочерний элемент обычно создается фильтром сегментации.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Этот метод передает кэшированное неотфильтрованное изображение через фильтр обработки изображений, который затем записывает отфильтрованные данные в предоставленный приложением поток. Компонент WIA 2.0 Preview извлекает этот поток, вызывая метод GetNextStream фильтра обработки изображений, который затем вызывает реализацию GetNextStream обратного вызова приложения. Перед вызовом IWiaPreview::UpdatePreview приложение должно сначала вызвать IWiaPreview::GetNewPreview , чтобы получить изображение из сканера; В противном случае метод возвращает ошибку.
Компонент WIA 2.0 Preview хранит неотфильтрованный образ, скачанный из драйвера. Возможно, элемент WIA 2.0, переданный в IWiaPreview::UpdatePreview , представляет только небольшую область образа, загруженного из драйвера. В этом случае компонент предварительной версии WIA 2.0 фактически вырезает эту область из кэшированного образа, прежде чем передать его в фильтр обработки изображений, который, в свою очередь, передает отфильтрованные данные изображения обратно в приложение.
Чтобы приложение передало все кэшированное изображение фильтру обработки изображений (который, в свою очередь, передает его приложению), при вызове IWiaPreview::UpdatePreview необходимо задать для параметра lOptions значение WiaPreviewReturnOriginalImage. При установке параметра lOptions в значение WiaPreviewReturnOriginalImage приложение должно убедиться, что параметры экстента (WIA_IPS_XEXTENT и WIA_IPS_YEXTENT) элемента, переданного в IWiaPreview::UpdatePreview , соответствуют полному кэшированному образу. В этом случае фильтр обработки изображений не должен выполнять никаких других действий. он просто фильтрует изображение на основе свойств pChildWiaItem (обычно в этом случае pChildWiaItem — это тот же элемент, который был передан в IWiaPreview::GetNewPreview). Разные под-регионы игнорируются, а весь образ фильтруется с использованием одинаковых параметров. Существует несколько причин, по которым приложение будет делать это.
- Приложение может не поддерживать изменение параметров (например , WIA_IPS_BRIGHTNESS и WIA_IPS_CONTRAST) по отдельности для каждого региона, обнаруженного фильтром сегментации (или даже не использовать фильтр сегментации). Приложению проще вызывать IWiaPreview::UpdatePreview с помощью WiaPreviewReturnOriginalImage , чтобы оно всегда получало полный образ от компонента предварительной версии WIA 2.0.
- Компонент предварительной версии WIA 2.0 не поддерживает формат изображения предварительного просмотра. В этом случае он не может выполнить действия для вырезания нужной области. Поддержка формата изображений компонента WIA 2.0 Preview ограничена форматами, для которых существуют кодировщики и декодеры Windows GDI+ 1.1. К этим форматам относятся растровое изображение (BMP) (растровое изображение, включающее BITMAPFILEHEADER), ФОРМАТ обмена графикой (GIF), JPEG, переносимая сетевая графика (PNG) и формат файлов изображений с тегами (TIFF).
Обратите внимание, что если приложение передает WiaPreviewReturnOriginalImage в IWiaPreview::UpdatePreview, компонент WIA 2.0 Preview может поддерживать любой формат изображения или пикселя.
IWiaPreview::UpdatePreview задает свойство WIA_DPS_PREVIEW (и сбрасывает его до возврата, если оно не было задано ранее). Это позволяет драйверу (и оборудованию), а также фильтру обработки изображений знать, что элемент является предварительной проверкой.
Приложение должно убедиться, что pChildWiaItem имеет тот же формат изображения (WIA_IPA_FORMAT) и разрешение (WIA_IPS_XRES и WIA_IPS_YRES), что и pWiaItem при передаче в IWiaPreview::GetNewPreview. Формат дочернего элемента должен соответствовать формату кэшированного образа компонента WIA 2.0 Preview (компонент предварительной версии WIA 2.0 не выполняет преобразование изображений).
Примеры
UpdateRegion следует вызывать при каждом изменении пользователем, например яркости или контрастности дочернего элемента, представленного dwRegionNumber
. Этот дочерний элемент ранее был создан фильтром сегментации (IWiaSegmentationFilter. Изображение, записанное в IStream , возвращается методом GetNextStream интерфейса обратного вызова передачи. Код для GetSubRegionItem опущен в этом примере.
После вызова этой функции приложение обычно перерисовывает область на экране.
HRESULT
UpdateRegion(
IN DWORD dwRegionNumber)
{
IWiaItem2 *pSubRegion = GetSubRegionItem(dwRegionNumber);
return m_pWiaPreview->UpdatePreview(0,pSubRegion);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
IDL |
|