Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/12/2009, 05:08
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 8 meses
Puntos: 29
Respuesta: Convertir Arreglo de bytes a imagen para PictureBox

He buscado y buscado y no he encontrado el modo simple, así que aquí te dejo lo que he preparado al final. Creo que algo así ya lo había visto, pero en fin, si es así, pues lo he vuelto a hacer.

Código :
Ver original
  1. Sub LoadPictureConMatrizDeBytes(ByRef MatrizDeBytes() As Byte, ByRef ControlImage As Object, Optional FormatoDeLaImagen As String)
  2.   Dim Fichero As String
  3.   Dim numFichero As Integer
  4.   If Trim$(FormatoDeLaImagen)="" then
  5.     Fichero = Environ("temp") & "\ImagenTemporal.jpg"
  6.   Else
  7.     Fichero = Environ("temp") & "\ImagenTemporal." & FormatoDeLaImagen
  8.   Endif
  9.   numFichero = FreeFile
  10.   Open Fichero For Output As #numFichero
  11.     Print #numFichero, MatrizDeBytes()
  12.   Close #numFichero
  13.   ControlImage.Picture = LoadPicture(Fichero)
  14.   Kill Fichero
  15. End Sub

Puedes cargar cualquier objeto que admita LoadPicture.

Para cargar un image p.ej pondremos:

LoadPictureConMatrizDeBytes TuMatriz, TuControlImage

Saludos

PD: Quizá quieras incluir el formato de la imagen cargada en la matriz.
Voy a Modificar el código para admitir eso de modo opcional.

Ahora puedes usar esta línea:
LoadPictureConMatrizDeBytes TuMatriz, TuControlImage
o esta otra según te interese.
LoadPictureConMatrizDeBytes TuMatriz, TuControlImage, "jpg"
Si no incluyes formato se usara "jpg" por defecto.

PD2: Ahora que estoy probando creo que no importa que pongas la extensión correcta o ni siguiera hace falta poner ninguna extensión al fichero temporal. Mi jpg lo está cargando como bmp y sin extensión ninguna.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 01/12/2009 a las 05:20