我想从我手动创建的byte[]
创建一个图像,但是我得到一个JIT错误
System.ArgumentException: Parameter is not valid.
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at CreateBitmapFromStream.Form1.Form1_Load(Object sender, EventArgs e) in c:\Data\C#-Workspace\CreateBitmapFromStream\CreateBitmapFromStream\Form1.cs:line 35
at System.Windows.Forms.Form.OnLoad(EventArgs e)
...
这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
var data = new byte[20*10];
for (int i = 0; i < data.Length; i++)
{
if (i < 100)
data[i] = 0x15;
else
data[i] = 0x99;
}
using (var ms = new MemoryStream(data))
{
var img = Image.FromStream(ms, true, true);
panel1.BackgroundImage = img;
}
}
我做错了什么?
答案 0 :(得分:0)
根据特定格式构建图像。
这不仅仅是一系列像素。如果您想绘制像素,请使用Bitmap
System.Drawing
类
Bitmap b = new Bitmap(1, 1);
b.SetPixel(0, 0, Color.Gray);
答案 1 :(得分:0)
如果要生成图像,则应使用BitmapData类。使用BitmapData,您可以将像素数据写入位图/图像。
这是一个例子: http://msdn.microsoft.com/en-us/library/system.drawing.imaging.bitmapdata.scan0.aspx