如何解决使用Entity Framework 6从SQL Server保存和检索图像二进制
将图像转换为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;
}
}
var image = new ImageEntity()
{
Content = ImagetoByteArray(image)
};
_context.Images.Add(image);
_context.SaveChanges();
如果你想获得的图像回来,从数据库中获取的字节数组,并使用ByteArrayToImage
与你希望与什么样的Image
当byte[]
变大时,这将停止工作。适用于100Mb以下的文件
解决方法
我正在尝试将位图图像保存到数据库
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[]));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。