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
     
  • 相关阅读:
    0121 集合类 ArrayList 的练习
    0121 有关接口的使用练习
    泛型相关知识
    0120 父类与子类创建、重写及转型练习
    0118练习 单例模式
    java设计模式 略版
    0117 面向对象OOP有关方法、类、构造方法及权限修饰符的练习
    0115 创建类并调用
    [luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)
    POJ1284 Primitive Roots (原根)
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/7732242.html
Copyright © 2011-2022 走看看