您的位置:首页 > 数据库

C#中查询数据库的图片system.byte[]怎么转为img

2013-06-13 22:48 941 查看
如直接在数据库查询时:0xFFD8FFE000104A46494600010101004800480000FFDB...后面还很长。我只贴一部分
而在C#中,查询得到的是System.Byte[]

而我要做的就是将System.Byte[]转换成img显示在pictureBox1上面

以修改为例:

            int id = Convert.ToInt32(dataGridView1.SelectedCells[0].Value);
            string sql = "select *from goods where id=@id";
            SqlParameter sp = new SqlParameter("@id", id);

           //查询ID对应的表信息,SQLHelper为我封装好了的对数据库操作的类,这里直接拿来用的
            DataTable dt = SQLHelper.GetTable(sql, sp);
           //只需要下面那句关键代码,就直接转换过来了
            byte[] by = (byte[])dt.Rows[0]["pic"];
            MemoryStream ms = new MemoryStream(by);
            Image img= Image.FromStream(ms);
            pictureBox1.Image = img;

另外把img保存在数据库里面粘贴下

    Image img = pictureBox1.Image;

            if (img.Width < 100 || img.Height < 100)

            {

                MessageBox.Show("请选择一个100*100以上的图片");

                return;

            }

            //以原图来生成一个小图

            Bitmap bmp = new Bitmap(100, 100);

            Graphics g = Graphics.FromImage(bmp);

            g.Clear(Color.White);

            Rectangle recDes = new Rectangle(0, 0, 100, 100);

           

            Rectangle sRec = new Rectangle(0, 0, img.Width, img.Height);

            g.DrawImage(img, recDes, sRec, GraphicsUnit.Pixel);

            //把两个图片做数据库的参数

            //数据库的文件类型的参数是byte数组

            //要将上面两图片变为byte数组

            byte[] pic;

            MemoryStream ms = new MemoryStream();

            bmp.Save(ms, ImageFormat.Jpeg);

            pic = ms.GetBuffer();//这个流中的所有字节

    //新增操作

   //.....

           sp[X]=new SqlParameter("@XXXX",pic);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# Byte 数据库