C#读取图片流保存到文件,再读取流文件,把图片再显示出来

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 将图片保存文件流
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "(*.jpg)|*.jpg";
          
              string fileName = ofd.FileName;
            //if (ofd.ShowDialog() == DialogResult.OK )// && !string.IsNullOrEmpty(fileName) ) 
            //{
            //    FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
            //    byte[] imageByte =  new byte[fs.Length];
            //    BinaryReader br = new BinaryReader(fs);
            //    imageByte = br.ReadBytes(Convert.ToInt32(fs.Length));

            //    for (int i = 0; i < imageByte.Length; i++)
            //    {
            //       sb.Append(imageByte[i].ToString());
            //    }

            //    textBox1.Text = sb.ToString();

            //}

              if (ofd.ShowDialog() == DialogResult.OK)// && !string.IsNullOrEmpty(fileName) ) 
              {
                  FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.ReadWrite);
                  

                  FileStream fSource = new FileStream(@"D:ABC.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                  BinaryWriter bw = new BinaryWriter(fSource);

                  byte[] imageByte = new byte[fs.Length];
                  BinaryReader br = new BinaryReader(fs);
                  imageByte = br.ReadBytes(Convert.ToInt32(fs.Length));

                  bw.Write(imageByte); 
                  int length = Convert.ToInt32(imageByte.Length);
                  //for (int i = 0; i < imageByte.Length; i++)
                  //{
                  //    sb.Append(imageByte[i].ToString());
                  //}
                  fs.Close();
                  //textBox1.Text = sb.ToString();
                  bw.Close();
                
                  fSource.Close();

              }


           

           // FileStream fs = new FileStream();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "(*.dat)|*.dat";
            if (ofd.ShowDialog() == DialogResult.OK) {

            
                FileStream fs = new FileStream(ofd.FileName, FileMode.Open,FileAccess.Read);
                byte[] imageByte =new byte[ofd.FileName.Length];
                BinaryReader br = new BinaryReader(fs);
                imageByte = br.ReadBytes(Convert.ToInt32(fs.Length));

                MemoryStream ms = new MemoryStream(imageByte);
                Bitmap bm = new Bitmap(ms);

                pictureBox1.Image = bm;
                ms.Close();
                fs.Close();
                fs.Dispose();
            }
        }
    }
}

  

原文地址:https://www.cnblogs.com/nymz/p/14226605.html