C#实现把图片转换成二进制以及把二进制转换成图片的方法示例
程序员文章站
2023-11-21 09:02:10
本文实例讲述了c#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下:
private void button1_click(ob...
本文实例讲述了c#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下:
private void button1_click(object sender, eventargs e) { string path = this.textbox1.text; byte[] imgbytesin = saveimage(path); showimgbybyte(imgbytesin); //parameters.add("@photo", sqldbtype.binary).value = imgbytesin; } //将图片以二进制流 public byte[] saveimage(string path) { filestream fs = new filestream(path, filemode.open, fileaccess.read); //将图片以文件流的形式进行保存 binaryreader br = new binaryreader(fs); byte[] imgbytesin = br.readbytes((int)fs.length); //将流读入到字节数组中 return imgbytesin; } //现实二进制流代表的图片 public void showimgbybyte(byte[] imgbytesin) { memorystream ms = new memorystream(imgbytesin); picturebox1.image = image.fromstream(ms); }
二、将图片保存到数据库中,并从数据库中读取:
#region 将图片从数据库中读取 /// <summary> /// 将图片从数据库中读取 /// </summary> /// <param name="xs_id">要读取图片的学号</param> /// <param name="ph">picturebox1控件名</param> public void get_photo(string xs_id, picturebox ph)//将图片从数据库中读取 { byte[] imagebytes = null; getcon(); sqlcommand con = new sqlcommand("select * from s_jiben where s_num='" + xs_id + "'", link); sqldatareader dr = con.executereader(); while (dr.read()) { imagebytes =(byte[])dr.getvalue(18); } dr.close(); con_close(); memorystream ms = new memorystream(imagebytes); bitmap bmpt = new bitmap(ms); ph.image = bmpt; } #endregion #region public void saveimage(string mid, openfiledialog openf)//将图片以二进制存入数据库中 { string strimg = openf.filename.tostring(); //记录图片的所在路径 filestream fs = new filestream(strimg, filemode.open, fileaccess.read); //将图片以文件流的形式进行保存 binaryreader br = new binaryreader(fs); byte[] imgbytesin = br.readbytes((int)fs.length); //将流读入到字节数组中 getcon(); stringbuilder strsql = new stringbuilder(); strsql.append("update s_jiben set xs_photo=@photo where s_num=" + mid); sqlcommand cmd = new sqlcommand(strsql.tostring(), link); cmd.parameters.add("@photo", sqldbtype.binary).value = imgbytesin; cmd.executenonquery(); con_close(); } #endregion
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#图片操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结》
希望本文所述对大家c#程序设计有所帮助。