Escanear imágenes desde Scaner con visual basic 6

Necesito guardar imágenes en sql server 2000, pero el problema aquí es que primero tengo que escanearlas desde visual basic 6, el scaner es HP, y pues me gustaría saber como hacer un programa para obtener la imagen directamente del scaner o si me recomiendas alguna otra forma para hacerlo.

1 respuesta

Respuesta
1
Te envío un comprimido con los fichero que te hacen falta. Copia los ficheros en c:\windows\system32 y ejecuta desde una línea de comandos 'registrar.bat' para registrar los componentes.
Una vez registrados los ocx, añade el componente a tu proyecto.
En cuanto a lo de Crystal... sólo he impreso imágenes desde Access. En la bbdd el campo lo definí como 'Objeto OLE' y CR me lo mostraba mal en la presentación por pantalla, pero por impresora salía bien después. No se me ocurre mucho más al respecto.
Saludos y no olvides valorar la respuesta.
Mi correo es: [email protected],
pásame el instalador por favor.
Aun no he podido escanear imágenes pero estoy probando lo de guardarlas en Sql, pero todo bien hasta que pretendí hacer un reporte en Crystal report 8.5
En crystal al querer mostrar ese campo (image) me aparece la imagen solo el 10 % visible y el 90 % Gris (+ O -)¿Qué estará pasando?
Una forma sencilla de obtener imágenes desde un escáner es a través del objeto "Kodak Image Scan Control". Inserta un objeto de este tipo en un formulario y escribe lo siguiente:
Private Sub Command1_Click()
If ImgScan1.ScannerAvailable Then
ImgScan1.OpenScanner
ImgScan1.ScanTo = FileOnly
ImgScan1.Image = "c:\scanimg.jpg"
ImgScan1.FileType = JPG_File ImgScan1.SetPageTypeCompressionOpts GoodDisplay, TrueColor24bitRGB, JPEGCompression, JPEGHighHigh
ImgScan1.ShowSetupBeforeScan = False
ImgScan1.StartScan
ImgScan1.CloseScanner
Else
'No hay escaner TWAIN
End If
End Sub
Esto es simplemente un ejemplo (probado en un HP4100C sobre XP), y básicamente lo que hace es capturar una imagen desde el escáner y guardarla en c:\scanimg.jpg. El objeto ofrece muchas posibilidades, así que tendrás que jugar con sus distintas propiedades hasta conseguir lo que quieres.
Más cosas, si usas Windows hasta el 2000, puedes conseguir el objeto "Kodak Image Scan Control" instalando el programa "Imaging" de Kodak (aparece como uno de los componentes de Windows).
En XP este programa no se incluye, pero puedes encontrar información sobre como instalarlo aquí: http://www.parkenet.com/apl/ImageEditor.htm
Si tienes XP y no te aclaras, pásame una dirección de correo y te envío un instalador.
Una vez que tienes la imagen en el fichero, puedes utilizar la siguiente función para grabar una imagen en un campo de un RecordSet:
Public Function GrabarImgBD(pRs As Recordset, pField As String, pNameFile As String) As Boolean
Const ChunkSize As Integer = 16384
Dim Chunk() As Byte, Chunks As Integer
Dim Fragment As Integer
Dim DataFile As Integer, FileLen As Long
Dim i As Integer
On Error GoTo FnErr
GrabarImgBD = False
If pField = "" Then Exit Function
DataFile = FreeFile
Open pNameFile For Binary Access Read As DataFile
FileLen = LOF(DataFile)
If FileLen > 0 Then
Chunks = FileLen \ ChunkSize
Fragment = FileLen Mod ChunkSize
'pRs.Fields(pField).AppendChunk Null
ReDim Chunk(Fragment)
Get DataFile,, Chunk()
PRs. Fields(pField). AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For i = 1 To Chunks
Get DataFile,, Chunk()
PRs. Fields(pField). AppendChunk Chunk()
Next i
End If
GrabarImgBD = True
FnFin:
Close DataFile
Exit Function
Resume
FnErr:
'ErrorManager
Resume FnFin
End Function
Saludos y no olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas