如何实现Image和Byte的转换?

解决方案 »

  1.   

    Image转换为byte[]            Image img=Image.FromFile("您的文件");
                MemoryStream ms = new MemoryStream();
                img.Save(ms, ImageFormat.Jpeg);
                byte[] by = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(by, 0, Convert.ToInt32(ms.Length));
                ms.Close();
    byte[]转换为Image            byte[] by = new byte[byte_Length]; //此处是获取存储图片的byte
                ins.Image = Image.FromStream(new MemoryStream(by));
      

  2.   

    public byte[] ConvertImage(Image image)
    {
         FileStream fs=new FileStream("imagetemp",FileMode.Create,FileAccess.Write,FileShare.None);
         BinaryFormatter bf = new BinaryFormatter();
         bf.Serialize(fs,(object)image); 
         fs.Close();
         fs=new FileStream("imagetemp",FileMode.Open,FileAccess.Read,FileShare.None);
         byte[] bytes = new byte[fs.Length];
         fs.Read(bytes,0,(int)fs.Length);
         fs.Close();
         return bytes;
    }
    public Image ReadImage(byte[] bytes)
    {
      FileStream fs=new FileStream("imagetemp1",FileMode.Create,FileAccess.Write,FileShare.None);
      foreach(byte a in bytes) 
      { 
        fs.WriteByte(a); 
      }
         fs.Close();
         fs=new FileStream("imagetemp1",FileMode.Open,FileAccess.Read,FileShare.None);
         BinaryFormatter bf = new BinaryFormatter();
         object obj=bf.Deserialize(fs);   
      fs.Close(); 
      return (Image)obj;
    }
    参考