读取本地图片到PICTUREBOX、以及和数据库指间的交互

来源:互联网 发布:日程规划软件 编辑:程序博客网 时间:2024/06/05 23:58

如上图:

新建一个picturebox1在窗体上面,三个按钮,分别是打开、放大、删除功能:

 //打开        private void button4_Click( object sender, EventArgs e )        {            OpenFileDialog opd = new OpenFileDialog( );            opd.Filter = "*jpg|*.JPG|*.GIF|*BMP";            if (opd.ShowDialog( ) == DialogResult.OK)            {                filepath = opd.FileName;                pictureBox1.ImageLocation = filepath;                FileStream fs = new FileStream( filepath, FileMode.Open, FileAccess.Read );                BinaryReader bs = new BinaryReader( fs );            }        }   //放大        R_FrmImageAmplication ima = new R_FrmImageAmplication( );//另一个窗体,用做放大的图片显示,上面有一个picturebox控件        private void button5_Click( object sender, EventArgs e )        {            if (pictureBox1.ImageLocation == "")            {                MessageBox.Show( "没有图片,无法放大" );            }            else            {                ima.pictureBox1.Image = pictureBox1.Image;                ima.ShowDialog( );            }        }//删除        private void button6_Click( object sender, EventArgs e )        {            pictureBox1.Image = null;        } 
然后是把读取到的图片放在数据库中,连接数据库的语句就不写了,在数据库中保存图片的数据类型为:varbinary(MAX)

最后是从数据库读出图片到窗体的picturebox1中:

private void textBox1_TextChanged( object sender, EventArgs e )        {            //红色字体是从数据库查询到要用的图片字段             <span style="color:#FF0000;">DataTable ddl = SqlHelper.ExecuteDataTable( "SELECT PQF29 FROM R_PQF WHERE PQF01=@PQF01", new SqlParameter( "@PQF01", textBox1.Text ) );</span>            if (ddl.Rows.Count > 0)            {               //由于保存是二进制数,所以判断是否有图片就判断长度是否等于0               if (((byte[])ddl.Rows[0]["PQF29"]).Length == 0)                {                    pictureBox1.Image = null;                }                else                {                    byte[] mybyte = (byte[])ddl.Rows[0]["PQF29"];                    MemoryStream ms = new MemoryStream( mybyte );                    ms.Write( mybyte, 0, mybyte.Length );                    ms.Position = 0;                    ms.Seek( 0, SeekOrigin.Begin );                    Image img = Image.FromStream( ms, true );                    pictureBox1.Image = img;                }            }        }


0 0
原创粉丝点击