急!pictureBox显示图片,保存到数据库,从数据库读取后再用pictureBox显示,图片质量下降。
1.把图片转成字节数字存储到数据库。
MemoryStream ms = new MemoryStream();
this.zp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Byte[] bytes = ms.ToArray();
ms.Dispose();
ms.Close();
props.AddProperty("YYZ_ZP", bytes);
2.从数据库读取时,先读取字节数据,然后转成图片。
Byte[] zp = reader.GetBytes(6);
MemoryStream ms = new MemoryStream(zp);
try
{
zpjl.zp = Image.FromStream(ms);
}
catch (Exception exc)
{
MessageBox.Show("读取照片出错!" + exc.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ms.Dispose();
ms.Close();
reader.Close();
return zpjlList;
}
ms.Dispose();
ms.Close();
3.保存时图片大小会变小。
一个757KB的图片,转成字节数组保存后,再转成图片,大小为158KB。
4.图片格式为jpg。
5.第一个图片为原始图片。
6.第二个图片为保存到数据库,再生成的图片。
敬请高手指教!!!!!!
------解决方案--------------------
System.Drawing.Imaging.ImageFormat.Gif
this.zp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
这句话应该是失真了
改成Bmp或者Jpeg应该好些