Principales respuestas
convertir una imagen a bytes para guardarla en una base de datos

Pregunta
-
mi problema es , que necesito guardar códigos QR en mi base de datos, tengo el código el cual me genera los QR y me los guarda e una carpeta, también conseguí un código el cual convierte una imagen a bytes pero el cual me pide un objeto tipo image , ahora lo que no se es como instanciar la imagen que se guardo de mi qr y pasar ese parametro al metodo para convertirla
//este es mi codigo para crear y guardar en una carpeta los codigos QR try { QRCodeEncoder encoder = new QRCodeEncoder(); Bitmap img = encoder.Encode(TextBox1.Text); img.Save(@"C:\Users\Administrador\Documents\Visual Studio 2015\WebSites\WebSite1\"+TextBox1.Text+".jpg", ImageFormat.Jpeg); Image2.ImageUrl = TextBox1.Text+".jpg"; Image2.Height = 200; Image2.Width = 200; } catch (Exception Exd) { Label1.Text = Exd.Message; }
//Este es mi metodo para covertirlo a bytes public static byte[] Convertir_Imagen_Bytes(System.Drawing.Image img) { string sTemp = Path.GetTempFileName(); FileStream fs = new FileStream(sTemp, FileMode.OpenOrCreate, FileAccess.ReadWrite); img.Save(fs, System.Drawing.Imaging.ImageFormat.Png); fs.Position = 0; int imgLength = Convert.ToInt32(fs.Length); byte[] bytes = new byte[imgLength]; fs.Read(bytes, 0, imgLength); fs.Close(); return bytes; }
Respuestas
-
hola
>>pero el cual me pide un objeto tipo image
pero si necesitas el byte[] de la imagen y partes de un archivo solo debes usar
byte[] imagen = File.ReadAllBytes("ruta imagen");
asi de simple y directo
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Joyce_ACModerator jueves, 27 de abril de 2017 15:28
- Marcado como respuesta Joyce_ACModerator miércoles, 3 de mayo de 2017 14:35
Todas las respuestas
-
Pero si ya tienes el codigo que convierte la imagen a bytes. Cierto que hay que pasarle un Image, pero el Image ya lo tienes tambien: es ese "Bitmap img" que tienes en la primera subrutina (la clase Bitmap hereda de Image).
Por cierto, la rutina que tienes para convertir a bytes es muy poco eficiente: primero salva los bytes a un archivo y luego vuelve a leerlos del archivo y borra el archivo. No hay ninguna necesidad de hacer todo esto: el metodo Save del Image (o del Bitmap) permite salvar a un Stream en lugar de un archivo. Le puedes pasar un MemoryStream y luego llamas al .ToArray del MemoryStream, y eso ya te devuelve los bytes. Asi funciona todo directamente en memoria sin pasar por el disco.- Editado Alberto PoblacionMVP jueves, 27 de abril de 2017 13:04
-
hola
>>pero el cual me pide un objeto tipo image
pero si necesitas el byte[] de la imagen y partes de un archivo solo debes usar
byte[] imagen = File.ReadAllBytes("ruta imagen");
asi de simple y directo
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Joyce_ACModerator jueves, 27 de abril de 2017 15:28
- Marcado como respuesta Joyce_ACModerator miércoles, 3 de mayo de 2017 14:35