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 de aja72
1
1
aja72, Desde los 14 años dedicado a la informática, principalmente...
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.