Image.FromStream的无效参数问题
目的:将数组的内容显示在窗口中。
我建立了一个byte数组,并初始化,然后写入到流中,建立Bitmap对象,使用FromStream导入内存流,编译通过,运行到Image.FromStream处显示无效参数异常。不知道为什么。我把代码贴出来,大家帮我分析分析到底哪的问题:
public partial class Form1 : Form
{
public Form1()
{
long ArrayLength = 10000;
byte[] DataArray = new byte[ArrayLength];
for (int i = 0; i < ArrayLength; i++)
DataArray[i] = 255;
MemoryStream DataStream = new MemoryStream(DataArray);
image = Image.FromStream(DataStream);
InitializeComponent();
}
private Image image;
private Bitmap img;
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawImage(image, 0, 0);
}
}
代码在 image = Image.FromStream(DataStream);
处出现异常。
为了进行比较,我导入一幅图像,并把图像写入内存流中,再导出到数组中,
将新数组仿照上述代码描述的过程,写入内存流中,建立Bitmap对象,使用FromStream导入内存流,发现可以正常显示。比较代码如下:
public partial class Form1 : Form
{
public Form1()
{
img = new Bitmap("C:\\Documents and Settings\\Administrator\\My Documents\\My Pictures\\124.JPG");
MemoryStream ImageStream = new MemoryStream();
img.Save(ImageStream, ImageFormat.Bmp);
byte[] imagearray = ImageStream.ToArray();
long ArrayLength = imagearray.Length;
byte[] DataArray = new byte[ArrayLength];
for (int i = 0; i < ArrayLength; i++)
DataArray[i] = 255;
MemoryStream DataStream = new MemoryStream(DataArray);
MemoryStream ImgStream = new MemoryStream(imagearray);
image = Image.FromStream(DataStream);
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private Image image;
private Bitmap img;
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawImage(image, 0, 0);
}
比较DataArray 和imagearray维数相同、大小相同、唯一不同的就是内部的数值。为什么在Image.FromStream出现错误呢?
哪位能帮帮我啊,先谢过了