Compartilhar via


Método IWiaPreview::UpdatePreview

Obtém a imagem não filtrada armazenada em cache pelo método IWiaPreview::GetNewPreview .

Sintaxe

HRESULT UpdatePreview(
  [in] LONG      lOptions,
  [in] IWiaItem2 *pChildWiaItem
);

Parâmetros

lOptions [in]

Tipo: LONG

Especifica se o aplicativo requer que o Componente de Visualização do WIA 2.0 passe uma sub-região da imagem armazenada em cache ou toda a imagem armazenada em cache para o filtro de processamento de imagem.

WiaPreviewReturnOriginalImage

Passe toda a imagem armazenada em cache para o filtro de processamento de imagem.

pChildWiaItem [in]

Tipo: IWiaItem2*

Especifica um ponteiro para o item IWiaItem2 , que é um filho do item IWiaItem2 especificado pelo parâmetro pWiaItem2 do método IWiaPreview::GetNewPreview . Ou, se o aplicativo exigir uma visualização de todo o flatbed, especificará um ponteiro para o parâmetro pWiaItem2 do método IWiaPreview::GetNewPreview . Quando pChildWiaItem é filho do parâmetro pWiaItem2 de IWiaPreview::GetNewPreview, esse item filho normalmente é criado pelo filtro de segmentação.

Valor retornado

Tipo: HRESULT

Se esse método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT .

Comentários

Esse método passa a imagem armazenada em cache e não filtrada pelo filtro de processamento de imagem, que grava os dados filtrados no fluxo fornecido pelo aplicativo. O Componente de Versão Prévia do WIA 2.0 recupera esse fluxo chamando o método GetNextStream do filtro de processamento de imagem, que, em seguida, chama a implementação GetNextStream do retorno de chamada do aplicativo. Antes de chamar IWiaPreview::UpdatePreview, um aplicativo deve primeiro chamar IWiaPreview::GetNewPreview para adquirir a imagem do verificador; caso contrário, o método retornará um erro.

O Componente de Versão Prévia do WIA 2.0 armazena a imagem não filtrada baixada do driver. É possível que o item WIA 2.0 passado para IWiaPreview::UpdatePreview represente apenas uma pequena região da imagem baixada do driver. Se esse for o caso, o Componente de Visualização do WIA 2.0 realmente cortará essa região da imagem armazenada em cache antes de passá-la para o filtro de processamento de imagem, que, por sua vez, passa os dados da imagem filtrada de volta para o aplicativo.

Para que um aplicativo passe toda a imagem armazenada em cache para o filtro de processamento de imagem (que, por sua vez, a passa para o aplicativo), ele deve definir o lOptions como WiaPreviewReturnOriginalImage ao chamar IWiaPreview::UpdatePreview. Ao definir lOptions como WiaPreviewReturnOriginalImage, o aplicativo deve garantir que as configurações de extensão (WIA_IPS_XEXTENT e WIA_IPS_YEXTENT) do item passado para IWiaPreview::UpdatePreview correspondam à imagem em cache completo. O filtro de processamento de imagem não precisa fazer nada diferente nesse caso; ele simplesmente filtra a imagem, com base nas propriedades de pChildWiaItem (normalmente, nesse caso , pChildWiaItem é o mesmo item que foi passado para IWiaPreview::GetNewPreview). As diferentes sub-regiões são ignoradas e toda a imagem é filtrada usando as mesmas configurações. Há alguns motivos pelos quais um aplicativo faria isso.

  1. O aplicativo pode não dar suporte à alteração das configurações (como WIA_IPS_BRIGHTNESS e WIA_IPS_CONTRAST) individualmente para cada região detectada pelo filtro de segmentação (ou talvez nem queira usar o filtro de segmentação). É mais fácil para o aplicativo chamar IWiaPreview::UpdatePreview com WiaPreviewReturnOriginalImage para que ele sempre receba a imagem completa do Componente de Versão Prévia do WIA 2.0.
  2. O Componente de Visualização do WIA 2.0 não dá suporte ao formato de imagem da imagem de visualização; nesse caso, ele não pode executar as ações para recortar a região desejada. O suporte ao formato de imagem do Componente de Versão Prévia do WIA 2.0 é limitado a formatos para os quais há codificadores e decodificadores do Windows GDI+ 1.1. Esses formatos são bitmap (BMP) (um bitmap que inclui o BITMAPFILEHEADER), GIF (Graphics Interchange Format), JPEG, PORTABLE Network Graphics (PNG) e TIFF (Tagged Image File Format).

Observe que, se o aplicativo passar WiaPreviewReturnOriginalImage para IWiaPreview::UpdatePreview, o Componente de Versão Prévia do WIA 2.0 poderá dar suporte a qualquer formato de imagem ou pixel.

IWiaPreview::UpdatePreview define a propriedade WIA_DPS_PREVIEW (e a redefine antes de retornar, a menos que tenha sido definida antes). Isso permite que o driver (e o hardware), bem como o filtro de processamento de imagem, saibam que o item é uma verificação de visualização.

Um aplicativo deve garantir que pChildWiaItem tenha o mesmo formato de imagem (WIA_IPA_FORMAT) e resolução (WIA_IPS_XRES e WIA_IPS_YRES) que pWiaItem tinha quando foi passado para IWiaPreview::GetNewPreview. O formato do item filho deve corresponder ao formato da imagem armazenada em cache do Componente de Versão Prévia do WIA 2.0 (o Componente de Versão Prévia do WIA 2.0 não executa nenhuma conversão de imagem).

Exemplos

UpdateRegion deve ser chamado sempre que um usuário altera, por exemplo, o brilho ou contraste para o item filho representado por dwRegionNumber. Esse item filho foi criado anteriormente pelo filtro de segmentação (IWiaSegmentationFilter. A imagem gravada no IStream é retornada pelo método GetNextStream da interface de retorno de chamada de transferência. O código para GetSubRegionItem é omitido neste exemplo.

Depois que essa função for chamada, um aplicativo normalmente redesenhará a região na tela.

HRESULT
UpdateRegion(
   IN  DWORD dwRegionNumber)
{
   IWiaItem2 *pSubRegion = GetSubRegionItem(dwRegionNumber);

   return m_pWiaPreview->UpdatePreview(0,pSubRegion);
}

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Wia.h
IDL
Wia.idl