zoukankan      html  css  js  c++  java
  • 把图片转换成二进制--把二进制转换成图片

     
     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
     
  • 相关阅读:
    Yield Usage Understanding
    Deadclock on calling async methond
    How to generate file name according to datetime in bat command
    Run Unit API Testing Which Was Distributed To Multiple Test Agents
    druid的关键参数+数据库连接池运行原理
    修改idea打开新窗口的默认配置
    spring boot -thymeleaf-url
    @pathvariable和@RequestParam的区别
    spring boot -thymeleaf-域对象操作
    spring boot -thymeleaf-遍历list和map
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/7732242.html
Copyright © 2011-2022 走看看