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

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