现在的位置: 首页 > 综合 > 正文

C#操作图象

2013年10月02日 ⁄ 综合 ⁄ 共 970字 ⁄ 字号 评论关闭
 1、首先从文件中读取要加到数据库中的图片,将它转换成byte[]类型,这样就可以加到数据库中去了。
FileStream fs = new FileStream(openPicForRead.FileName, FileMode.OpenOrCreate, FileAccess.Read);
MyData = new byte[fs.Length];
fs.Read(MyData, 0, Convert.ToInt32(fs.Length));
fs.Close();
2、从数据库中读取出来并在PictrueBox中显示,用下面这种方法比较重要,如果用FileForm生成临时文件的话如果打开第二次时就会提示文件正在使用。注意一定要用MemoryStream。
byte[] readimage = new byte[0];
int piccount = DataBind.Tables["T_Equipment"].Rows.Count;
readimage = (byte[])DataBind.Tables["T_Equipment"].Rows[piccount-1]["Photo"];

if (readimage.Length !=0)
{
  MemoryStream stmBLOBData = new MemoryStream(readimage);
  picEquipment.Image = Image.FromStream(stmBLOBData);
}
3、将PictureBox.Image加到数据库中,为什么要提到这一点呢?因为在修改一条记录时可能不会修改它的图像字段,所以只能把它的显示结果重新写回去,当然也可以在Update时不修改它。
MyData = new byte[0];
MemoryStream ms=new MemoryStream();
PictureBox1.Image.Save(ms,ImageFormat.Jpeg);
MyData = ms.GetBuffer();
最后将MyData写回去。
第三条的命名空间为using System.Drawing.Imaging;

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=457667

 

抱歉!评论已关闭.