我正在尝试将位图图像保存到数据库
Bitmap map = new Bitmap(pictureBoxMetroMap.Size.Width, pictureBoxMetroMap.Size.Height);
我创建了一个专栏imgcontent
在数据库中的数据类型binary
但我的问题是如何转换它bitmap
(映射)到二进制数据?
以及如何从数据库中检索数据?
我用谷歌搜索,发现了类似的东西,但它不起作用:
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)
{
using(var ms = new MemoryStream())
{
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
}
public Image ByteArrayToImage(byte[] byteArrayIn)
{
using(var ms = new MemoryStream(byteArrayIn))
{
var returnImage = Image.FromStream(ms);
return returnImage;
}
}
Source: 将图像转换为字节数组的最快方法
var image = new ImageEntity()
{
Content = ImageToByteArray(image)
};
_context.Images.Add(image);
_context.SaveChanges();
当你想取回图像时,从数据库中获取字节数组并使用ByteArrayToImage
并做你想做的事Image
当byte[]
变得很大。它适用于 100Mb 以下的文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)