TWAIN é um padrão de captura a partir de scanners: uma imagem capturada através de uma API para os sistemas operacionais Microsoft Windows ou Apple Macintosh. O padrão foi inicialmente lançado no ano de 1992.
Habitualmente, e de forma informal, diz-se que TWAIN deriva de Technology Without An Interesting Name - Tecnologia Sem Nome Interessante, mas na realidade o origem do nome TWAIN vem do poema de Rudyard Kipling a "The Ballad of East and West", onde a certa altura se pode ler: "...and never the twain shall meet...". Ao criarem uma norma comum a várias plataformas, os membros iniciais queriam com a escolha de TWAIN significar que haviam conseguido unir o Este e o Oeste, contrariando o escrito no poema.
Com a introdução de scanners, câmeras digitais, e outros dispositivos de aquisição de imagens, usuários desejaram incorporar o valor de imagens dentro de seus documentos e outros trabalhos. De qualquer modo, apoiando a exibição e manipulação destes rastreadores de dados colocados a um custo alto na programação de aplicações. Eles precisavam criar interfaces de usuários e construir controles de dispositivos para um vasto grupo de diversos tipos de dispositivos de imagens. Uma vez sua aplicação estava preparada para suportar um dado dispositivo, eles enfrentavam a realidade desencorajados que o dispositivo continuava a ser atualizado com novas capacidades e recursos. Programadores ficavam continuamente revisando seus aplicativos para que estes ficassem atuais.
Programadores de ambos dispositivos de aquisição de imagem e aplicativos de software reconheceram a necessidade de um comunicação padrão entre o dispositivo de imagem. Uma padronização beneficiaria ambos grupos como também os usuários de seus produtos. Isto permitiria os produtos dos vendedores de dispositivos serem acessados por mais aplicativos e vendedores de aplicativos poderiam acessar dados destes dispositivos sem a preocupação para qual tipo de dispositivo, ou dispositivo particular, este foi desenvolvido. TWAIN foi desenvolvido por esta necessidade de consistência e simplificação.
TWAIN foi criado por um pequeno grupo de companhias de software e hardware em resposta a industria de imagem por uma proposta especificação. O Grupo de trabalho teve como meta prover uma abertura, solução multi-plataforma para interligar as necessidades dos dispositivos de entrada com o software de aplicação. O grupo de trabalho original foi formado por representantes de cinco companhias: Aldus, Caere, Eastman Kodak, Hewlett-Packard e Logitech. Três outras companias, Adobe, Howtek and Software Architects também contribuíram significativamente.
O desenho do TWAIN iniciou em Janeiro, 1991. Revisão do original TWAIN Developer’s Toolkit ocorreu em Abril 1991 até janeiro de 1992. O original Toolkit foi revisado pela TWAIN união. A união incluiu aproximadamente 300 representantes individuais 200 companhias que continuarão influenciando e guiando o futuro do TWAIN.
A versão atual do TWAIN foi escrita pelos atuais 11 membros do TWAIN Working Group. Os sócios incluem: Adobe, Cânon, Eastman Kodak Company, Fujitsu Computer Products Of América, Genoa Technology, Inc., Hewlett-Packard Company, Intel Corporation, J.F.L. Peripherals, Kofax Image Products, Ricoh Corporation, e Xerox.
Em maio de 1998, um acordo foi anunciado entre Microsoft e o TWAIN Working Group quais providos para a inclusão do TWAIN Data Source Manger no Microsoft Windows 98 e Microsoft Windows NT 5.0.
Durante a criação do TWAIN, as seguintes arquiteturas e objetivos estavam presentes:
Elimina a necessidade de sua aplicação prover uma interface de usuário para controlar o processo de aquisição de imagem. Há um modulo no software de interface de usuário carregado com todos dispositivos de fonte TWAIN para fazer o processo. Do curso, você pode prover sua interface de usuário própria para aquisição, se desejar.
TWAIN é suportado sobre as plataforma a seguir: Todos versões de Apples Macintosh, Microsoft Windows 3.x / 9x/ NT e Windows 2000. TWAIN não esta disponível sobre Windows CE. TWAIN esta disponível sobre IBM OS/2, mas os binários para o gerenciador de fontes não foram construídos ou distribuídos pelo TWAIN Working Group.
Twain define um protocolo de software padrão e API (Interface de programação de aplicação) para a comunicação entre o software e o dispositivo de aquisição de imagem. (A fonte de dados).
O protocolo TWain e API são facilmente compreendidas quando você ver os quadros a seguir: Esta seção descreve:
A transferência de dados é possível de três elementos de software trabalhando junto com o TWain: A aplicação, o gerenciador da fonte e a fonte. Estes elementos usam a arquitetura do TWain para comunicação. A TWain arquitetura consiste de 4 camadas:
Os elementos do software TWain ocupam as camadas ilustradas abaixo. Cada camada é descrita nas seções a seguir:
A aplicação de software do usuário é executada nesta camada TWain descreve as diretrizes de interface de usuário para o programador de aplicação considerar, como o usuário acessa as funcionalidades do TWain e como uma fonte particular é selecionada.
TWain não se interessa como a aplicação esta implementada. TWain não tem efeito sobre qualquer esquema de comunicação inter-aplicacao que a aplicação poderia usar.
Os protocolos são as ‘linguagens’ orais e a sintaxe usada pelo TWain. Estas implementações precisam de instruções e as comunicações requerem dados para serem transferidas.
As camadas de protocolos incluem:
O índice de camada de protocolos são discutidas em mais detalhes nas seções a seguir chamando “Comunicações entre os elementos do TWain”.
Dispositivo de aqusição pode ser físico (como um escanner ou câmera digital) ou lógico (como um banco de dados de imagem). O elemento de software escreve para o controle de aquisição, chamando a fonte que reside primeiramente nesta camada.
A fonte transfere dados para a aplicação. Esta usa o formato e transfere o mecanismo em acordo com a fonte e a aplicação. A fonte sempre provê uma interface do usuário embutida que controla os dispositivos, este escreve para o drive. Uma aplicação pode anular isto e apresentar uma interface de usuário própria para aquisição caso deseje.
Este é o local tradicional do dispositivo de driver de baixo nível. Ele converte os comandos específicos do dispositivo dentro dos comandos de hardware e aciona o dispositivo de driver específicos escrito pela companhia. Aplicações que usam Twain não mais precisarão carregar dispositivos de driver porque eles fazem parte da Fonte.
TWain não se preocupa com a camada de dispositivo total. A Fonte oculta as camadas do dispositivos da aplicação. A fonte prove a tradução das operações do Twain e interrage com a Fonte de interface com o usuário dentro dos comandos equivalentes para o dispositivo de driver que causa o comportamento desejado no dispositivo.
Nota: As camadas de protocolos é a mais completa e rígida definição, permitindo uma precisa comunicação entre aplicação e a fonte. As informações deste documento concentram-se sobre o protocolo e a aquisição de camadas.