• 把图片转换成二进制把二进制转换成图片 Alec


     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
    更多前端内容请访问个人博客:殷路辉的个人博客
  • 相关阅读:
    解决document.execCommand执行fontSize不能超过48px的问题
    JS实现值复制
    DGIS之遥感影像数据获取
    Chrome获取微信授权,调试公众号页面
    【Three.js】如何选中外部模型
    【Three.js】模型抗锯齿处理
    【Three.js】实现随心所欲的展示外部三维模型
    【GIS新探索】算法实现在不规则区域内均匀分布点
    WebGIS简单实现一个区域炫酷的3D立体地图效果
    【GIS新探索】GeoHash原理和编解码实现
  • 原文地址:https://www.cnblogs.com/yinluhui0229/p/2671037.html
Copyright © 2020-2023  润新知