Archivos bmp

Tengo un directorio con una gran cantidad de archivos bmp. Necesito pasar esos archivos a una base de datos. El problema está es que no se que instrucciones VB usar traerme el archivo como imagen. Utilicé el objeto imagelist, funciona pero no me permite trabajar con más de trecientas imágenes.
¿Podrás darme una manito?

1 Respuesta

Respuesta
1
Partiendo del hecho de que tienes un objeto Imagelist con el que te funciona, yo lo seguiría usando, añadiendo elementos y quitándolos (por poco que me guste el imagelist ;-))
Declárate un array como esto :
Dim images() As ListImage
Y juega con un array dinámico.
Añádele elementos de este modo :
Redim Preserve images (0 to 0)
La primera vez.
Y las subsiguientes con :
Redim Preserve images (0 to Ubound(images)+1)
De este modo, tienes una array interno más potente que el que te ofrece el límite del listimage, solo limitado por la memoria de tu máquina.
No es mucho, pero si lo que quieres es más complejo dímelo y te genero algo de ese estilo.
Hola, aunque no he puesto a prueba el código, me parece que me da una solución, no obstante, cómo hago para traerme el archivo, es decir, ¿conociendo la ruta se lo paso al arreglo y ya?
Gracias.
Private Sub Form_Click ()
Dim Msg as String
On Error Resume Next
Picture1.Picture = LoadPicture(PATHDELARCHIVO, vbLPCustom, vbLPColor, 32, 32)
If Err Then
MsgBox "archivo no encontrado"
End If
End Sub
LoadPicture te permite cargar una imagen en tiempo de ejecución.
Almacenalo como quieras y añádelo al array.
¿Es eso lo que preguntabas no?
Estoy haciendo la prueba y lamentablemente no puedo pasarle la ruta al arreglo donde está la imagen, entiendo que es porque espera que se le pase un tipo de archivo específico. A ver, si las imágenes están en un servidor, ¿cómo hago paramertas en el arreglo como una imagen?
Estoy tratando de trabajar con el código que me has suministrado, me está dando el siguiente error:
object variable or with block not set
las instrucciones son las siguientes:
Dim images() As Image
ReDim Preserve images(0 To 0)
For x = 1 To UBound(images) + x + 1
ruta = "\\rctvfilesrv\seguridad$\Programas\fotos\F000000" + CStr(x) + ".bmp"
ReDim Preserve images(x)
ReDim Preserve im(x)
Picture1.Picture = LoadPicture(ruta, vbLPCustom, vbLPColor, 32, 32)
images(x) = Picture1.Picture
Next x
Justo cuando le estoy pasando el valor al arreglo.
Gracias en serio por tu colaboración.
"Si lo prefieres entero por código házmelo saber"
Te tomo la palabra, si lo prefiero.
Dim images() As ListImage
redim preserve images(0 to 0)
x=0
ruta = "c:\seperator.gif"
ImageList1.ListImages.Add 1, "IMAGRN", LoadPicture(ruta, vbLPCustom, vbLPColor, 32, 32)
Set images(x) = ImageList1.ListImages.Item(1)
Mantengo tu código en la medida de lo posible.
Yo lo haría todo sin Imagelists ni nada por el estilo. Pero es lo primero que he probado que funciona.
Si lo prefieres entero por código házmelo saber.
Y no me agradezcas la colaboración, cuando yo necesitaba saber, me explicaban. Sin más. ¿Cómo no voy a resolver las dudas a quie me lo plantee?.
Te había puesto muchas cosas, pero el explorer decidió que no le gustaba funcionar, así que resumo. (Originales en ingles.)
Esta página para que te leas :
http://www.vbexplorer.com/VBExplorer/tiletutor.asp
Y ete ejemplo para que pongas :
Dim objPic(0 to 5) As Picture
Set objPics(0) = LoadPicture("Butterfly1.gif")
Set objPics(1) = LoadPicture("Butterfly2.gif")
.
.
.
Set objPic(5) = LoadPicture("Imagen.gif")
Para mostrar la imagen :
PaintPicture objPics(intCount), 0, 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas