0

イーサネット経由でフレームを送信するプログラムを c# で作成しようとしています。

現在、解像度が 1920x1080 の .jpg テスト イメージがあり、サイズはバイト単位で大きく異なります。

.jpg 画像をバイト配列に変換しようとしています。同様の回答を探しましたが、試してみると、画像ごとに 437、1030、1013 バイトを含むバイト配列が得られました。画像が HD 解像度であることを考えると、これは意味がありません。画像ファイルを 1920*1080*3 (RGB) バイト配列に変換するにはどうすればよいですか? このコードが遅くならないように、高速でフレームを送信できるリアルタイム アプリケーションを開発しようとしていることを覚えておいてください。

前もって感謝します。トゥンク

4

2 に答える 2

1

Imageバイトをバイト配列に読み取るには:

                Image image = ...;
                MemoryStream ms = new MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

                if (ms.Length == 0)
                {
                    ms.Close();
                    throw new Exception("Bad Image File");
                }

                ms.Position = 0;
                byte[] baImageBytes = new byte[ms.Length];
                ms.Read(baImageBytes , 0, (int)ms.Length);
                ms.Close();

バイト配列からイメージを作成するには:

byte[] baImageBytes =...
Image myImage = Image.FromStream(new MemoryStream(baImageBytes ));
于 2013-07-17T11:24:46.000 に答える