把圖片轉換成二進制--把二進制轉換成圖片


 
 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
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM