Red de conocimiento informático - Material del sitio web - Cómo llamar al escáner con Twain.dll

Cómo llamar al escáner con Twain.dll

Cuando se utiliza Delphi para desarrollar sistemas de gestión de información, a menudo se procesan imágenes, lo que también es una tendencia inevitable en el desarrollo de sistemas de gestión de información. ¿Cómo obtener la información de imagen requerida a través de un escáner en Delphi? No existen más de tres métodos básicos:

Usar software de procesamiento de imágenes, como Photoshop, etc., a través de su función de escanear imágenes, procesarlas en imágenes en un formato determinado y luego usarlas en su propio sistema explotado; a través de la interfaz del escáner Twain.DLL. Esta interfaz se proporciona cuando se instala el escáner. En realidad, es un complemento que controla el escáner a través de una serie de funciones.

El uso del primer método puede reducir la complejidad de la programación, pero la integración del sistema no es alta y es inconveniente para los usuarios; el segundo método puede controlar directamente el escáner a nivel del controlador y puede La programación proporciona la máxima flexibilidad; y controlabilidad; el tercer método puede aprovechar al máximo la tecnología de componentes visuales de Delphi para utilizar el escáner de forma segura, flexible y libre. De hecho, el tercer método también se basa en la interfaz del escáner Twain.DLL. El método discutido en este artículo adopta el tercer método.

Windows9X proporciona una opción de "imagen" en su archivo adjunto, que utiliza componentes OCX para controlar el escáner. Hay cuatro componentes imgEdit, imgAnntool, imgScan e imgAdmin. El uso en Delphi es el siguiente: Seleccione la "imagen" de instalación en Windows9x. (Seleccione "Agregar o quitar programas" en el Panel de control, luego seleccione "Instalar Windows", haga clic en la casilla de verificación "Accesorios" y luego busque "Imagen" en el botón "Detalles") Inicie Delphi y seleccione "Componente" en el En el elemento del menú "Importar control ActiveX", puede ver que hay "Control de edición de imágenes Wang, Control de escaneo de imágenes Wang, Control de administración de imágenes Wang y Control de miniaturas de imágenes Wang" en la lista. Luego, haga clic en "Instalar". ", y podrá ver los íconos de estos cuatro componentes debajo de la etiqueta ActiveX en el panel de componentes.

Los principales atributos de ImgScan: FileType: el tipo de archivo de la imagen (este componente admite tres tipos: TIFF, BMP, AWD

ScanTo: devuelve o establece el tipo de archivo); la imagen escaneada Propósito; posibles significados del valor

0 (predeterminado) Mostrar la imagen escaneada

1 Mostrar la imagen escaneada y escribirla en un archivo. 2 Importe la imagen a un archivo

3 Escriba la imagen en el archivo usando una plantilla y muéstrela

4 Escriba la imagen en el archivo usando una plantilla

<. p>5 Imagen escaneada por fax Nota: Si el valor predeterminado es 0,

debe usarse junto con el componente Wang ImgEdit.

DestImageControl: nombre del componente Wang ImgEdit;

Zoom: relación de escala de imagen Método principal de ImgScan: OpenScanner: abre el escáner

CloseScanner: cierra el escáner; p>

StartScan: iniciar el escaneo;

StopScan: detener el escaneo

Las propiedades de ImgEdit son principalmente para controlar la resolución y el ancho de la imagen escaneada, si se permite. selección parcial de imágenes, etc.; los métodos principales incluyen copiar y cortar imágenes en la mesa de trabajo, copiar imágenes de la mesa de trabajo, rotar, escalar y reflejar imágenes, imprimir, guardar y actualizar imágenes en espera.

Para obtener instrucciones detalladas sobre el uso de los cuatro componentes OCX anteriores, puede ver su propio sistema de ayuda en Delphi.

A continuación se muestran algunos ejemplos del uso de estos dos componentes: procedimiento Tscanf.N1Click(Sender: TObject);

begin

ImgScan1.ShowSelectScanner

//Select Scanners; instalado en el sistema

end; procedimiento Tscanf.N2Click(Sender: TObject);

begin

imgedit1.zoom:=100; factor de la imagen

si no es imgscan1.ScannerAvailable entonces

//Si el escáner seleccionado no está disponible

imgscan1.OpenScanner //Abrir escáner

p>

imgscan1.StartScan; //Comienza a escanear imágenes

imgscan1.CloseScanner; //Cierra el escáner

end;

procedimiento Tscanf.N8Click (Remitente: TObject);

comenzar

si (imgedit1.IsClipboardDataAvailable

y imgedit1.ImageDisplayed ) entonces

imgedit1.ClipboardPaste( SELleft, SELTOP);

//Pegue la imagen del portapapeles, su parámetro es la coordenada inicial del área de visualización de Imgedit

end;procedimiento Tscanf.N1801Click (Remitente: TObject) ;

comenzar

si imgedit1.ImageDisplayed entonces

imgedit1.Flip; //Imagen reflejada

procedimiento Tscanf.N901Click( Remitente: TObject);

comenzar

si imgedit1.ImageDisplayed entonces

imgedit1.RotateRight //Gira la imagen hacia la derecha

fin;

procedimiento Tscanf.N6Click(Remitente: TObject);

comenzar

imgedit1.DrawSelectionRect(selleft,

seltop, selwidth , selheight); // Realiza una selección parcial de la imagen

imgedit1.ClipboardCut(selleft, seltop,

selwidth, selheight //Corta el área seleccionada

end;

Nota: Al utilizar las funciones de copiar y cortar del componente Imgedit en DELPHI, se producirán los siguientes problemas:

Si se seleccionan todas las imágenes sin ellas. cualquier problema; 2. Si se selecciona un área local, las áreas copiadas y cortadas se desplazarán 3. Si DELPHI está creando la interfaz del cliente de la base de datos back-end de MS SQL, al editar la imagen Al escribir el contenido de la imagen en la imagen; campo de la base de datos, el BDE (motor de base de datos) informará un error. Este es un ERROR en DELPHI 3.0 y 4.0. El paquete de actualización de 4.0 puede resolver este problema.

En cuanto al segundo problema, se puede resolver así: escriba un fragmento de código en el evento onSelectionRectDrawn de Imgedit, guarde el valor límite del área de selección en cuatro variables globales y use las variables previamente guardadas para realizar otra selección antes de copiar. y cortar (Por supuesto, todo esto sucede en segundo plano, vea el ejemplo anterior). Entorno de desarrollo: DELPHI4.0, escáner HP ScanJet 4P;