为了将一个二维字节数组byte[] 转换为image类型的图片 最初我写了以下代码。总是出现一些参数无效的错误
Bitmap btm = new Bitmap(pictureBox1.ImageLocation);
byte [] tt=imgproc.GetPixels(btm);
MemoryStream ms = new MemoryStream( );
Image image = Image.FromStream(ms,true);
ms.Close();
string filename = "D:\\124"+System.Drawing.Imaging.ImageFormat.Bmp;
image.Save(filename);
pictureBox2.ImageLocation = filename;
imgproc是我编写的一个图像处理类.GetPixeds(btm)它调用C#图像处理库函数将一个位图的像素以数值的形式存在数组中。然后我想将数组又变换为原来的图片,调用Image.FromStream()方法,但是运行的时候总是报错argumentexception(参数无效)。按道理来说应该是行得通的。但是如果细想函数转换的过程我们就会发现这样写错误重重。
1.将图片转为byte[]数组的时候。先要按照灰度计算公式gray=0.3R+0.59G+0.11B 将图片一个像素的连续三个字节转为了一个字节。且在一行像素中,跳过了三个字节的空白区。
2.调用FromStream()的时候,Byte[] 数组中的值已经和原来位图字节值完全