使用entity framework6从SQL Server保存并检索图像(二进制)
我正在尝试将位图图像保存到数据库
Bitmap map = new Bitmap(pictureBoxMetroMap.Size.Width, pictureBoxMetroMap.Size.Height);
我使用数据typesbinary
在数据库中创build了一个列imgcontent
,但我的问题是如何将此bitmap
(地图)转换为二进制数据?
我怎样才能从数据库检索数据?
我GOOGLE了,我发现这样的事情,但它不工作:
byte[] arr; ImageConverter converter = new ImageConverter(); arr = (byte[])converter.ConvertTo(map, typeof(byte[]));
将图像转换为byte[]
并将其存储在数据库中。
将此列添加到您的模型中:
public byte[] Content { get; set; }
然后将你的图像转换为一个字节数组,并存储,就像你会有其他的数据:
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; }
来源: 将图像转换为字节数组最快的方法
var image = new ImageEntity(){ Content = imageToByteArray(image) } _Context.Images.Add(image); _Context.SaveChanges();
当你想得到图像,从数据库中获取字节数组,并使用byteArrayToImage
,并使用byteArrayToImage
做你想做的
当byte[]
变大时停止工作。 它将适用于100Mb以下的文件