Image转Stream转Byte[],Byte[]转Stream转Image,参数无效
rt。
- C# code
void Fun(Image image){ MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); bytes = StreamToBytes(ms); Stream ms2 = BytesToStream(bytes); if (Form == null) { Form = new Form2(); Form.pictureBox1.Image = Image.FromStream(ms2);//参数无效 Form.ShowDialog(); }} private byte[] StreamToBytes(Stream stream) { byte[] bytes=new byte[stream.Length]; stream.Read(bytes, 0,bytes.Length); stream.Seek(0, SeekOrigin.Begin); return bytes; } private Stream BytesToStream(byte[] bytes) { Stream stream = new MemoryStream(bytes); return stream; }[解决办法]
在我的印象中 貌似 可以直接 byte[] byTest = ms.ToArray()
[解决办法]
在StreamToBytes方法中
stream.Seek(0, SeekOrigin.Begin);
stream.Read(bytes, 0,bytes.Length);
这两句代码的位置颠倒一下位置。
image.Save()后,Stream流中的位置在末尾,先把位置移到开始在读取,否则你读取到一个空。
用LS说的这个方法也可以:
byte[] byTest = ms.ToArray()