Estoy intentando guardar una imagen de mapa de bits a la base de datos de

Bitmap map = new Bitmap(pictureBoxMetroMap.Size.Width, pictureBoxMetroMap.Size.Height);

He creado una columna imgcontent en la base de datos con tipo de datos binary pero mi problema es ¿cómo puedo convertir este bitmap (mapa) para datos binarios?

Y ¿cómo puedo recuperar los datos de la base de datos?

He buscado en google y he encontrado algo como esto pero no funcionó:

byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(map, typeof(byte[]));
gracias pero no lo uso EF!!Estoy en lo cierto ?

OriginalEl autor Ehsan Akbar | 2014-08-20

1 Comentario

  1. 62

    Convertir la imagen a un byte[] y almacenar en la base de datos.


    Agregar esta columna a su modelo:

    public byte[] Content { get; set; }

    Luego convertir su imagen en una matriz de bytes y de la tienda que como cualquier otro dato:

    public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        return ms.ToArray();
    }
    
    public Image byteArrayToImage(byte[] byteArrayIn)
    {
         MemoryStream ms = new MemoryStream(byteArrayIn);
         Image returnImage = Image.FromStream(ms);
         return returnImage;
    }

    Fuente: La forma más rápida de convertir la Imagen a la matriz de Bytes

    var image = new ImageEntity(){
       Content = imageToByteArray(image)
    }
    _Context.Images.Add(image);
    _Context.SaveChanges();

    Cuando se desea obtener de nuevo la imagen, obtener la matriz de bytes a partir de la base de datos y el uso de la byteArrayToImage y hacer lo que desee con la Image

    Este deja de funcionar cuando la byte[] llega a lo grande. Esto funciona para archivos de menos de 100 mb

    Gracias funciona querido amigo
    Gracias a usted me salvó la vida!
    Gracias, es una buena solución
    muchas gracias…
    Lo que si quiero guardar un archivo whixh supera los 100 MB? ¿Cómo puedo modificar el código?

    OriginalEl autor JensB

Dejar respuesta

Please enter your comment!
Please enter your name here