はい、バイトストリームは有効な画像形式である必要があります。.png、jpgまたは同様のファイル。どこbyteSource
から来ましたか?ピクセル値の配列の場合は、新しいビットマップを作成してから、を使用LockBits
してバイトを正しい形式でコピーできる配列を取得する必要があります。
それがあなたが探しているものであるならば、これは100x100の画像をノイズで満たす例です:
Bitmap b = new Bitmap(100,100);
var bits = b.LockBits(new Rectangle(0,0,100,100), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Random rand = new Random();
var pixels = Enumerable.Range(1, 100*100).Select(n => rand.Next()).ToArray();
Marshal.Copy(pixels, 0, bits.Scan0, 100*100);
b.UnlockBits(bits);
// use the image ...
b.Save("D:\\test.png", ImageFormat.Png);
これは、ピクセルのソースが32bppArgbであることを前提としていますが、LockBitsに渡すことができる他のフォーマットオプションがあります。