C#操作图象

 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.youkuaiyun.com/TrackBack.aspx?PostId=457667

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值