一直觉的关于图片存储读取挺有难度的,别说复杂的,就连简单的自己也很难编写出来,

今天就把简单的学了一下,其实只是稍微复杂一些而已,这也是基本功之一吧。

首先最简单的读取图片,只需筛选访问文件类型即可。

 

 

public void readImage(OpenFileDialog openF,PictureBox picBox)

        {

            openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";

            if (openF.ShowDialog() == DialogResult.OK)

            {

                try

                {

                    picBox.Image = System.Drawing.Image.FromFile(openF.FileName);

                }

                catch

                {

                    MessageBox.Show("¨¢¨?º¡ì㨹");

                }

            }

        }

 

 

然后是存储图片

 

public void SaveImage(string MID, OpenFileDialog openF)

        {

            string P_str = openF.FileName;//Ì?Ì?ª??Ì?¨´¨²¡¤?

            FileStream fs = new FileStream(//ä¡ä¡§?t¢¡Â?¨®

                P_str, FileMode.Open, FileAccess.Read);

            BinaryReader br = new BinaryReader(fs);//ä¡ä¡§t??¨¢¨?¡Â

            byte[] imgBytesIn = br.ReadBytes((int)fs.Length);//?¢¡Â¨¢¨?Ì?Á?¨²ºyÁ¨¦D

            conn.Open();//䨰aºyYa¢?¨®

            StringBuilder strSql = new StringBuilder();//ä¡ä¡§Á?¤?ä?1¨¬¡Â

            strSql.Append(//?¨®Á?¤?ä?

                "update tb_employee Set employeePhoto=@Photo where employeeID=" + MID);

            SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);//ä¡ä¡§¨¹¢??¨®

            cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;//¬¨ª¨®?ºy

            cmd.ExecuteNonQuery();//¡äDSQL¨¹¢?

            conn.Close();//?À?ºyYa¢?¨®

        }

 

最后把图片展示出来

 

public void Get_Image(string ygname, PictureBox pb)

        {

            byte[] p_w_picpathbytes = null;//¦¨´¡ÂÁ?¨²ºyÁ¨¦À?¢?

            conn.Open();//䨰aºyYa¢?¨®

            SqlCommand com = new SqlCommand(//ä¡ä¡§¨¹¢??¨®

                "select * from tb_employee where employeeID='" + ygname + "'", conn);

            SqlDataReader dr = com.ExecuteReader();//¡äDSQl¨¹¢?

            while (dr.Read())//¨¢¨?ºyYaDÌ?ºyY

            {

                p_w_picpathbytes = (byte[])dr.GetValue(11);//Ì?Ì?ª?¨®Ì?Á?¨²ºyY

            }

            dr.Close();//?À?ºyY¨¢¨?¡Â

            conn.Close();//?À?ºyYa¢?¨®

            MemoryStream ms = new MemoryStream(p_w_picpathbytes);//ä¡ä¡§¨²ä?¢¡Â?¨®

            Bitmap bmpt = new Bitmap(ms);//Ì?Ì?BMP?¨®

            pb.Image = bmpt;//?º?ª???¡é

        }

 

我想这一切主要还是靠多练习的