C#内存流示例----->用内存流来读取图片

时间:2022-11-25 22:58:00


C#文件处理操作必须先导入命名空间:using System.IO;

背景:一个窗体、一个pictureBox、一个lable[没有选择图片,lable的text为"图片未选择"],在pictureBox1的Click事件中添加如下代码:

private void pictureBox1_Click(object sender, EventArgs e)
        {
            //实例化一个打开文件对话框
            OpenFileDialog op = new OpenFileDialog();
            //设置文件的类型
            op.Filter = "JPG图片|*.jpg|GIF图片|*.gif";
            //如果用户点击了打开按钮、选择了正确的图片路径则进行如下操作:
            if(op.ShowDialog()==DialogResult.OK)
            {
                //清空文本
                this.label1.Text = "";
                //实例化一个文件流
                FileStream fs = new FileStream(op.FileName, FileMode.Open);
                //把文件读取到字节数组
                byte[] data = new byte[fs.Length];
                fs.Read(data, 0, data.Length);
                fs.Close();

                //实例化一个内存流--->把从文件流中读取的内容[字节数组]放到内存流中去
                MemoryStream ms = new MemoryStream(data);
                //设置图片框 pictureBox1中的图片
                this.pictureBox1.Image = Image.FromStream(ms);
            }

        }