Ehs*_*bar 37 c# binary entity-framework bitmap
我试图将位图图像保存到数据库
Bitmap map = new Bitmap(pictureBoxMetroMap.Size.Width, pictureBoxMetroMap.Size.Height);
Run Code Online (Sandbox Code Playgroud)
我imgcontent
在数据库中使用数据类型创建了一个列binary
但我的问题是如何将此bitmap
(映射)转换为二进制数据?
我如何从数据库中检索数据?
我用谷歌搜索它,我发现这样的东西,但它不起作用:
byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(map, typeof(byte[]));
Run Code Online (Sandbox Code Playgroud)
Jen*_*nsB 78
将图像转换为a byte[]
并将其存储在数据库中.
将此列添加到您的模型:
public byte[] Content { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后将您的图像转换为字节数组,并像存储任何其他数据一样存储:
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;
}
Run Code Online (Sandbox Code Playgroud)
var image = new ImageEntity(){
Content = imageToByteArray(image)
}
_Context.Images.Add(image);
_Context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
当你想要获取图像时,从数据库中获取字节数组并使用byteArrayToImage
和做你想做的事情Image
当它byte[]
变大时停止工作.它适用于100Mb以下的文件