Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 07-jul-2008, 11:21   #1 (permalink)
jhonwilliams tiene algunos puntos positivos de karma
 
Avatar de jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.110
De byte[] a Imagen

Compañeros, hace algun tiempo se discutió en el foro como pasar imagenes a arreglos de bytes y mostraron esta funcion.

Código:
public static byte[] tomaBytes(string archivin)
        {         
            byte[] imagenBytes;
            if (File.Exists(archivin) == true)
            {
                imagenBytes = File.ReadAllBytes(archivin);
            }
            return imagenBytes;
        }
Ahora quisiera saber como obtener los bytes apartir de un objeto tipo Bitmap, por decir algo creo este código:
Código:
  Bitmap tmpBitmap = new Bitmap(archivin);
Como hago para obtener los byte[] del tmpBitmap?

Y como hacer el proceso contrario, si tengo un arreglo de bytes como hacer para exportarlo y crear un archivo de imagen en el disco duro.

Gracias.
__________________
"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
jhonwilliams está desconectado   Responder Citando
Antiguo 07-jul-2008, 11:31   #2 (permalink)
Peterpay tiene algunos puntos positivos de karma
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 2.044
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Respuesta: De byte[] a Imagen

sitienes estos metodos para q convertilos a byte array. mejor pasalo a stream con el save y de ahi sacas tdoos los datos.

Bitmap.Save(ruta)
o
Bitmap.Save(stream,formato);

Bitmap x = new Bitmap();
MemoryStream mystream = new MemoryStream();
x.Save(mystream, System.Drawing.Imaging.ImageFormat.Bmp);
mystream.ToArray()
__________________
Saludos
Peterpay
MCPD EAD
Directorio Gratuito
Peterpay esta en línea ahora   Responder Citando
Antiguo 07-jul-2008, 12:55   #3 (permalink)
jhonwilliams tiene algunos puntos positivos de karma
 
Avatar de jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.110
Respuesta: De byte[] a Imagen

Estoy usando el objeto Bitmap para luego guardarlo como jpg, es esto correcto o ahi otro objeto mas apropiado para crear el jpg?

Gracias
__________________
"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
jhonwilliams está desconectado   Responder Citando
Antiguo 07-jul-2008, 13:01   #4 (permalink)
jhonwilliams tiene algunos puntos positivos de karma
 
Avatar de jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.110
Respuesta: De byte[] a Imagen

Cita:
Iniciado por Peterpay Ver Mensaje
sitienes estos metodos para q convertilos a byte array.
Lo tengo en un arreglo de bytes porque asi lo guardo en la base de datos, pero si quiero generar un reporte html e incluir la imagen, debe exportar el arreglo de bytes y generar el archivo de imagen con este arreglo.

Gracias.
__________________
"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
jhonwilliams está desconectado   Responder Citando
Antiguo 08-jul-2008, 10:19   #5 (permalink)
HenrydeSousa ha deshabilitado el karma
 
Avatar de HenrydeSousa
 
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 290
Respuesta: De byte[] a Imagen

Hola, acá te dejo un link que encontré hace tiempo intentanto hacer lo mismo pero para una Pocket PC:
http://www.mygnet.net/articulos/c_sh..._de_datos.1161

Y este el code que utilizo para guardar una imagen en un arreglo de bytes en la BD y luego para exportarlo a una imagen.


Código PHP:
            string sBase64 "";


            
//-----------------------------------------------------------------------
            //asi lo guardo
            
string camino;
            
camino Path.Combine(AppPath"CapturedSignature1.bmp");


            
System.IO.FileStream fs = new System.IO.FileStream(caminoSystem.IO.FileMode.OpenOrCreateSystem.IO.FileAccess.Read);            
            
BinaryReader br = new BinaryReader(fs);
            
byte[] MyData = new byte[fs.Length];            
            
br.Read(MyData0MyData.Length);

            
//Guardamos el arreglo de bytes 
            
sBase64 Convert.ToBase64String(MyData);

            
fs.Close();
            
fs null;
            
br null;
            
MyData null;

            
//Aquí guardo el arreglo de bytes en la base de datos.

            
File.Delete(camino);
            
// -------------------------------------------------------------------
            
MessageBox.Show("Datos guardados satisfactoriamente""Mensaje del Sistema"MessageBoxButtons.OKMessageBoxIcon.NoneMessageBoxDefaultButton.Button1);

            
//----------------------------------------------------------------------- 

Código PHP:
            /*Guardamos en una cadena la ruta de la imagen donde se descodificará. Es decir, despues de este proceso, estara guardada en el disco duro del servidor*/
            
string camino;
            
camino Path.Combine(AppPath"CapturedSignature1.bmp");
            
            
//Utilizamos un FileStream para crear un nuevo archivo temporal 
            
FileStream fs = new FileStream(caminoFileMode.CreateNewFileAccess.Write);

            
//Un BinaryWriter para escribir la imagen descodificada 
            
BinaryWriter bw = new BinaryWriter(fs);

            
//Un arreglo de Bytes para descodificar la imagen 
            
byte[] bytes;
            
bytes Convert.FromBase64String(sBase64);

            
//Escribimos la imagen 
            
bw.Write(bytes);

            
//Liberamos memoria 
            
fs.Close();
            
bytes null;
            
bw null;
            
sBase64 null
Espero te sirva.
Saludos...
HenrydeSousa está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 18:54.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93