日期:2014-05-20  浏览次数:20975 次

急!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应该好些