将图像从字节数组保存到磁盘(使用EF),在GDI+中发生了一个通用错误
本文关键字:发生了 GDI+ 错误 一个 EF 字节数 字节 图像 数组 保存 使用 | 更新日期: 2023-09-27 17:53:27
我正在开发一个winforms程序,它可以从数据库中获取字节数组,将其转换为图像并保存在磁盘上。
图片在PictureBox元素中显示得很好,但是当我试图保存文件时,代码抛出一个错误:"GDI+中发生的通用错误"。图片是在我的文件夹中生成的,但是无法读取(重0字节)。
var profilImage = (from user in _context.mytable
where user.Id == itemData.Id
select user.ProfilImage).FirstOrDefault();
Image DcImage = ByteArrayToImage(profilImage);
this.pictureBox1.Image = DcImage;
DcImage.Save(this.tb_choose_folder.Text + @"'test.jpg", ImageFormat.Jpeg);
方法ByteArrayToImage ()
// Convert a byte array to an image
private Image ByteArrayToImage(byte[] byteArrayIn)
{
if(byteArrayIn == null)
{
throw new NullReferenceException("byteArrayIn");
}
using (MemoryStream mStream = new MemoryStream(byteArrayIn))
{
return Image.FromStream(mStream);
}
}
下面是我将图像转换为字节数组的方法:
System.Drawing.Image image = System.Drawing.Image.FromFile(@"myFolder'test_1.jpg");
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
var imageByteArray = ms.ToArray();
imageByteArray被放入sql server图像类型字段
谢谢你的建议
你不需要做这些。你的字节已经是一个JPEG文件;您可以使用File.ReadAllBytes()
和File.WriteAllBytes()
从磁盘读取和写入它们。