从SQL CE db加载图像,然后尝试将其加载到PictureBox中。在.Net中加载图像时发生OutOfMemory异常
我保存图像这样的:
if (ofd.ShowDialog() == DialogResult.OK)
{
picArtwork.ImageLocation = ofd.FileName;
using (System.IO.FileStream fs = new System.IO.FileStream(ofd.FileName, System.IO.FileMode.Open))
{
byte[] imageAsBytes = new byte[fs.Length];
fs.Read(imageAsBytes, 0, imageAsBytes.Length);
thisItem.Artwork = imageAsBytes;
fs.Close();
}
}
,然后使用LINQ to SQL保存到数据库中。
我加载图像回像这样:
using (FileStream fs = new FileStream(@"C:\Temp\img.jpg", FileMode.CreateNew ,FileAccess.Write))
{
byte[] img = (byte[])encoding.GetBytes(ThisFilm.Artwork.ToString());
fs.Write(img, 0, img.Length);
}
,但我得到一个OutOfMemoryException。我已经读过,这是一个轻微的红色鲱鱼,并可能有文件类型有问题,但我不能确定什么。
任何想法?
谢谢 picArtwork.Image = System.Drawing.Bitmap.FromFile(@“C:\ Temp \ img.jpg”);
这是什么类型的艺术品?您将在第一个代码块中为其分配字节,但在第二个代码块中将Artwork ToString转换为字符,然后将其转换为字节。为什么多次转换? – dthorpe 2010-04-19 20:12:28