在ASP.NET中怎么图片转换二进制

如题所述

首先数据库里面有一字段类型为image,我这里是一个窗体应用程序,也是将图片以二进制的形式保存至数据库的,思路是一样的

byte[] photo;

        public byte[] Photo
        {
            get { return photo; }
            set { photo = value; }
        }

        FileStream fs;
        string fileName = string.Empty;

        private void btnChooose_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Filter = "*.jpg|*.jpg|*.gif|*.gif|*.bmp|*.bmp";
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                fileName = fileDialog.FileName;
                fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                pictureBox.Image = Image.FromStream(fs);
                fs.Close();
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(fileName))
            {
                fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                byte[] imageByte = new byte[fs.Length];
                fs.Read(imageByte, 0, (int)fs.Length);
                Photo = imageByte;
                fs.Close();
                AddImage();
            }
            else
            {
                MessageBox.Show("请选择图片");
            }
        }

        private void AddImage()
        {
            using (SqlConnection connection = new SqlConnection(connString))
            {
                connection.Open();
                SqlCommand command = new SqlCommand("PROC_ADDIMAGE", connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@IMAGE", SqlDbType.Image).Value = Photo;
               int rows =  command.ExecuteNonQuery();
               if (rows > 0)
               {
                   MessageBox.Show("添加成功");
               }
               else
               {
                   MessageBox.Show("添加失败");
               }
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        int index;
        /// <summary>
        /// èŽ·å–图片
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGetImage_Click(object sender, EventArgs e)
        {
            /// <summary>
            /// å­˜å›¾ç‰‡çš„集合
            /// </summary>
            IList<Form1> form1List = new List<Form1>();

            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                SqlCommand command = new SqlCommand("PROC_GETIMAGE", conn);
                command.CommandType = CommandType.StoredProcedure;
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Form1 form1 = new Form1();
                        form1.Photo = (byte[])reader["Photo"];
                        form1List.Add(form1);
                    }
                }
            }

            if (form1List.Count == 1)
            {
                MemoryStream imageStream = new MemoryStream(form1List[0].Photo);
                pictureBox.Image = Image.FromStream(imageStream);
            }
            else if (form1List.Count > 1)
            {
                index++;
                if (index < form1List.Count)
                {
                  
                    btnGetImage.Text = "下一张";
                    MemoryStream imageStream = new MemoryStream(form1List[index].Photo);
                    pictureBox.Image = Image.FromStream(imageStream);
                }
                else
                {
                    index=0;
                    MemoryStream imageStream = new MemoryStream(form1List[index].Photo);
                    pictureBox.Image = Image.FromStream(imageStream);
                }
                
            }
            else
            {
                MessageBox.Show("存中还没有图片");
            }
        }

        /// <summary>
        /// æ¸…除图片
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClear_Click(object sender, EventArgs e)
        {
            pictureBox.Image = null;
        }
温馨提示:内容为网友见解,仅供参考
无其他回答

在ASP.NET中怎么图片转换二进制
使用 BinaryFormatter.Serialize 对 Image 对象进行序列化,再用 BinaryFormatter.Deserialize 进行反序列化。

在ASP.NET中怎么图片转换二进制
首先数据库里面有一字段类型为image,我这里是一个窗体应用程序,也是将图片以二进制的形式保存至数据库的,思路是一样的byte[] photo; public byte[] Photo { get { return photo; } set { photo = value; } } FileStream fs; string fileName = string.Empty; private...

高分!ASP.NET中如何把图片以二进制方式存入SQL Server数据库,并能...
1、建所需数据库和表,语句如下:--建立数据库 create database test --使用该数据库 use test --建立存放图片的表 create table piclist(id int Identity primary key,pic Image not null )2、制作上传图片的模块,代码如下:前台html代码:<%@ Page Language="C#" AutoEventWireup="true" CodeF...

怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示
1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.\/\/根据文件名(完全路径)public byte[] SetImageToByteArray(string fileName){ FileStream fs = ...

asp.net上传图片缩放并转成二进制
您可以把原图路径放入数据库中,读取的时候直接读路径就可以,缩略图路径也放入数据库中,一样的,一个表,两个字段,就行,为什么一定要把图片转换成二进制呢?非要转换二进制的话,保存图片的时候,直接保存在表中,读取的时候,一直把字段帮顶给 ...

.NET中如何循环遍历一个文件夹中的图片并将图片以二进制的方式存入sqlse...
\/\/byte[] photo = br.ReadBytes((int)fs.Length); \/\/ br.Close(); \/\/fs.Close(); #endregion \/\/把图片转换成二进制 MemoryStream ms = new MemoryStream(); img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] photo = ms.GetBuffer(); ms.Close...

asp.net中如何把文件转成二进制再转回来
将文件用BinaryFomatter二进制序列化到流中,然后操作流就行了。

asp.net使用gridview显示MySql里面的图片(二进制存储)。
1.将图片以二进制存入数据库 2.读取二进制图片在页面显示 3.设置Image控件显示从数据库中读出的二进制图片 4.GridView中ImageField以URL方式显示图片 5.GridView显示读出的二进制图片 设置Image控件显示从数据库中读出的二进制图片 --- SqlConnection myConn = new SqlConnection("Data Source=192.168....

asp.net中怎样将数据库中二进制图片读取出来并做成图片播动效果 急...
读出二进制为byte[]这后转成流,之后从流转成bmp

asp.net中如何将二进制图片存入有id(自增长、主键)、studentid(从登陆页...
\/\/修改二进制流 \/\/SqlCommand com = new SqlCommand("update Headimges set imgname=@imgdata where studentid=@aid",con);if (Session["sid"] != null && Session["sid"] != ""){ com.Parameters.Add("@imgdata", SqlDbType.Image);com.Parameters["@imgdata"].Value = FileData;com...

相似回答