Pergunta

Quero implementar um sistema de arquivamento sem papel e pretendo usar WIA com C# para aquisição de imagens.Existem alguns projetos de amostra no CodeProject, etc.No entanto, depois de baixar cada um deles que encontrei, tive um problema.

Em todos e cada um deles a referência ao WIALib está quebrada.Quando adiciono "Microsoft Windows Image Acquisition" como referência, a única versão disponível na minha estação de trabalho de desenvolvimento (também na máquina que irá executá-la) é a 2.0.

Infelizmente, cada um desses projetos de amostra parece ter sido codificado em relação a 1.x.A referência entra como "WIA" em vez de "WIALib".Eu tentei, apenas alterando a importação do namespace, mas claramente a API é drasticamente diferente.

Existe alguma informação sobre a implementação da v2.0 ou sobre a atualização de um desses projetos de amostra existentes?

Foi útil?

Solução

Para acessar o WIA, você precisará adicionar uma referência à biblioteca COM, "Microsoft Windows Image Acquisition Library v2.0" (wiaut.dll).adicione um "usando WIA;"

const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
CommonDialogClass wiaDiag = new CommonDialogClass();
WIA.ImageFile wiaImage = null;

wiaImage = wiaDiag.ShowAcquireImage(
        WiaDeviceType.UnspecifiedDeviceType, 
        WiaImageIntent.GrayscaleIntent, 
        WiaImageBias.MaximizeQuality, 
        wiaFormatJPEG, true, true, false);

WIA.Vector vector = wiaImage.FileData;

(Sistema.Desenho)

Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(filename)

Essa é uma maneira básica, funciona com meu alimentador de mesa/documento.Porém, se você precisar de mais de um documento/página por vez, provavelmente existe uma maneira melhor de fazer isso (pelo que pude ver, isso lida apenas com uma imagem por vez, embora não tenha certeza).Embora seja um documento WIA v1, Scott Hanselman Artigo Coding4Fun no WIA contém mais algumas informações sobre como fazer isso para várias páginas, eu acho (ainda estou para ir além disso)

Se for para um sistema de escritório sem papel, você também pode verificar o MODI (Office Document Imaging) para fazer todo o OCR para você.

Outras dicas

Veja como direcionar o WIA 1.0 também para que você possa enviar seu aplicativo para o Windows XP.Algo que eu estava procurando desesperadamente!!Como desenvolver usando WIA 1 no Vista?

Atualizar:Estou adicionando isso separadamente, pois é uma resposta diferente (um ano depois).Aprendi que o XP tem WIA 1.0 e o Vista em diante tem WIA2.0.No entanto, você pode instalar o WIA 2.0 para Windows XP Sp1+ em aqui.

Também fiz uma pequena biblioteca com código que encontrei em algum lugar da internet aqui, ela também tem a capacidade de digitalizar várias páginas:http://adfwia.codeplex.com/

Não precisar ser WIA.Eu estava olhando principalmente para a configuração do WIA porque ela oferece a mesma interface básica para diferentes scanners.Eu tenho três scanners nesta máquina e os drivers/software TWAIN para todos eles são péssimos (como bloquear a tela durante a digitalização).

Para gerenciamento de documentos, estou realmente procurando digitalizações simples em escala de cinza de 200 dpi, então a maior parte do material nos drivers TWAIN é um exagero.

Dito isto, perguntar aqui foi parte da minha última tentativa de descobrir como fazer isso no WIA antes de passar para o TWAIN.

Outra nota:Você deve baixar a dll WIA 2.0 de Microsoft.com e, em seguida, navegar até a dll e adicioná-la ao seu projeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top