1

手動で作成したイメージからイメージを作成したいのです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;
  }
}

私は何を間違っていますか?

4

2 に答える 2

0

画像は、特定のフォーマットに従って構築されます。

それは単なる一連のピクセルではありません。ピクセルを描画する場合は、Bitmapによって提供されるクラスを使用しますSystem.Drawing

Bitmap b = new Bitmap(1, 1);
b.SetPixel(0, 0, Color.Gray);
于 2013-08-09T10:51:47.940 に答える
0

画像を生成したい場合は、BitmapData クラスを使用する必要があります。BitmapData を使用すると、ピクセル データをビットマップ/イメージに書き込むことができます。

例を次に示します: http://msdn.microsoft.com/en-us/library/system.drawing.imaging.bitmapdata.scan0.aspx

于 2013-08-09T10:52:03.233 に答える