Introdução aos Filtros de Processamento de Imagens
O filtro de processamento de imagem é uma extensão WIA. O filtro de processamento de imagem serve a duas finalidades principais:
Para permitir que o código de processamento de imagens seja separado do driver. Por exemplo, o filtro de processamento de imagem pode ser usado para modificar o brilho e o contraste de uma imagem e para executar o deskewing e a rotação. O filtro de processamento de imagem está em sua própria DLL, separada da DLL do driver do modo de usuário. O filtro de processamento de imagem recebe dados de imagem não filtrados do driver no qual ele executa a filtragem.
Para habilitar visualizações ao vivo precisas. O filtro de processamento de imagem é usado de um novo componente do Windows Vista WIA Preview (descrito na documentação do SDK do Microsoft Windows) que fornece visualizações ao vivo precisas. Nesse contexto, "live" significa que um aplicativo não precisará adquirir novamente a imagem do verificador depois de alterar algumas configurações de propriedade, que são discutidas posteriormente nesta seção. As visualizações são precisas, pois a filtragem é realmente executada por um componente de fornecedor na imagem de visualização real, em vez de apenas um filtro aleatório em uma imagem totalmente separada.
Para fornecer visualizações precisas, um filtro deve implementar propriedades de brilho e contraste no mínimo. Isso é para que a interface do usuário comum, que fornece controles de brilho e contraste para o usuário, possa exibir visualizações precisas.
O filtro de processamento de imagem sempre é executado quando uma imagem é verificada. Portanto, não há como um aplicativo obter a imagem do verificador sem ter o filtro de processamento de imagem aplicado primeiro. Um aplicativo não precisa estar ciente do filtro.
A Microsoft fornece o componente wia preview que armazena em cache a imagem de visualização original não filtrada adquirida do verificador. O componente Preview possibilita aplicar um filtro várias vezes a uma imagem sem precisar adquirir novamente a imagem do verificador. O componente wia preview normalmente seria usado para imagens de visualização quando um aplicativo permite que um usuário altere as configurações, como contraste e brilho. Embora o usuário altere as configurações, o aplicativo pode exibir continuamente a imagem resultante no painel de visualização sem precisar examinar novamente a imagem.
O filtro de processamento de imagem é uma extensão WIA, em execução como um componente COM em processo. Ao contrário do filtro de segmentação, um aplicativo normalmente não cria uma instância do próprio filtro de processamento de imagem chamando IWiaItem2::GetExtension (descrito na Documentação do SDK do Windows). Em vez disso, o aplicativo criará uma instância do componente wia preview, que, por sua vez, carregará o filtro de processamento de imagem real usando o método IWiaItem2::GetExtension . O filtro de processamento de imagem também é invocado automaticamente quando um aplicativo chama IWiaTransfer::D ownload.
Um filtro de processamento de imagem é vinculado a um driver e normalmente distribuído junto com o driver. O componente wia preview está disponível em sti.dll e é fornecido com o sistema operacional.
A figura a seguir mostra o filtro de processamento de imagem sendo carregado por componentes WIA no processo do aplicativo. Observe que é possível que mais de uma instância do filtro de processamento de imagem seja carregada no processo do aplicativo ao mesmo tempo, portanto, as gravações de filtro devem ser cautelosas sobre isso. Por exemplo, no caso de variáveis globais (estáticas) serem usadas, o gravador de filtro deve garantir a sincronização adequada.