Controlar tamaño de la imagen escaneada en access

Me gustaría saber, si vd. Es tan amable y lo conoce, que tengo que hacer para escanear fotos carnet en un escáner. He conseguido escanear pero me lo hace a tamaño A4. ¿Cómo controlo el tamaño?. Estoy intentando incluir una foto carnet para una base de datos de alumnos.

1 Respuesta

Respuesta
1
Con access no lo he visto, pero quizás en la siguiente liga:
http://www.planetsourcecode.com/vb
Localices algo, ahí existe una rutina para visual basic 6.
Ante todo gracias. He consultado el enlace pero la verdad... me pierdo puesto que hay mucha información. ¿Podría indicarme dónde está la rutina exactamente?. Gracias
Haber si la siguiente liga es mejor:
http://www.thescripts.com/forum/thread442587.html
Gracias David. En principio he solucionado el problema utilizando el commonDialog y seleccionando el área a escanear. Pero el problema que tengo es el siguiente. Cuando escaneo una foto y paso a la ficha siguiente para escanear otra me sale "ERROR 2145320848: NoImageFile loades. You must call Loadfile first". Tengo que cerrar la base de datos y volver a entrar para que me deje escanear otra y así. Esta es la secuencia de código que he puesto:
Option Compare Database
Option Explicit
Dim CommonDialog1 As Object
Dim Img As Object, Imagen As Object 'As Image
Dim IP, IP1 'As New ImageProcess
Dim Scaner As Object
Dim PrimeraHoja As Boolean, NumeroHojas As Integer
Dim gl_double As Double, gl_cadena As String, gl_codigo As String
Const wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
Private Sub Proceso_Escaner()
Dim MiPath As String
'* creamos el objeto escaner y la imagen contenedora
Set CommonDialog1 = CreateObject("WIA.CommonDialog")
Set Imagen = CreateObject("WIA.imagefile")
'*
On Error GoTo Err_Escanear_Click
EtiquetaProceso:
'* Lo primero nos aseguramos que no exista la imagen
Call Proceso_Borrar_Fichero
'* capturamos imagen
Set Img = CommonDialog1.ShowAcquireImage
'Configure scanner settings
'* la convertimos aJPEG
If Img.FormatID <> wiaFormatJPEG Then
Set IP = CreateObject("Wia.ImageProcess")
IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters(1).Properties("FormatID").Value = wiaFormatJPEG
Set Img = IP.Apply(Img)
Set IP = Nothing
End If
'* si es la primera hoja la asignamos a la imagen contenedora
If PrimeraHoja = False Then
PrimeraHoja = True
Set Imagen = Img
NumeroHojas = 1
End If
'** Salvamos el fichero
Imagen.SaveFile ("C:\fotos alumnos\" & Me.APELLIDOS & ".jpg")
Me.RutaFoto = "C:\fotos alumnos\" & Me.APELLIDOS & ".jpg"
'** Comprobamos el tamaño, para evitar los errores de seleccion. Si es menor de 100 Kb pasa, si es mayor preguntamos
gl_double = TamañoArchivo("C:\fotos alumnos\" & Me.APELLIDOS & ".jpg")
If gl_double > NumeroHojas * 100 Then
If MsgBox("El archivo tiene " & gl_double & " Kb" & vbCrLf & vbCrLf & "¿ Volvemos a escanear ?", vbQuestion + vbYesNo + vbDefaultButton1, "El chino dice...") = vbYes Then
GoTo EtiquetaProceso
End If
End If
'* anulamos objetos y salimos
Etiqueta_Salir:
Set Imagen = Nothing
Set CommonDialog1 = Nothing
Exit Sub
Err_Escanear_Click:
If Err.Number = 91 Then 'El usuario cancela la acción
Resume Etiqueta_Salir
Else
MsgBox "Error " & Err.Number & ": " & Err.Description
End If
End Sub
Private Sub Proceso_Borrar_Fichero()
'** borramos el archivo (por siaca)
On Error Resume Next
Kill ("C:\fotos alumnos\" & Me.APELLIDOS & ".jpg")
On Error GoTo 0
End Sub
Public Function TamañoArchivo(strRuta As String) As Single
Dim fso As Object, Archivo As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'* comprobamos que el archivo exista, si no existe devolvemos 0
If Len(Dir(strRuta)) > 0 Then
Set Archivo = fso.GetFile(strRuta)
'* devolvemos el tamaño en Kb
TamañoArchivo = Round(Archivo.Size / 1024, "0")
Else
TamañoArchivo = 0
End If
Set Archivo = Nothing
Set fso = Nothing
End Function
Private Sub ESCANEAR_FOTO_Click()
Call Proceso_Escaner
End Sub
¿Cómo puedo solucionarlo?. Muchas gracias
Sugiero desactivar el control del commondialog y volver a crearlo cuando se necesite, de otra forma todo lo demás lo veo bien...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas