0

AForge.NET フレームワークを使用してプロジェクトを開発しています。私のプロジェクトでは、グレースケール ビットマップから 2D バイト配列を取得しようとしています。このサイトや他のフォーラムには、このテーマに関するいくつかの解決策が投稿されています。しかし、私は本当の結果を得ていません。たとえば、私はそのコードを使用しました:

public static byte[] ImageToByte2(Image img)
{
    byte[] byteArray = new byte[0];
    using (MemoryStream stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        stream.Close();

        byteArray = stream.ToArray();
    }
    return byteArray;
}

この「MemoryStream」メソッドの後、このバイト配列を 2D に変換することを考えました。ただし、このコード サンプルを 4*8 ビットマップでテストしたところ、1100 個の値が byteArray に返されました。それは正常ですか?どこに行方不明ですか?

4

2 に答える 2

1

.NETクラスは、イメージとイメージImageの 2 種類のイメージのインターフェイスとして機能します。後者は、ビットマップのようなピクセルの配列ではなく、何かを描画するための一連の命令で構成されています。Bitmap クラス自体を見ると、画像のピクセル データを抽出できる1 組のメソッドがあります。クラスのリンクされた参照の下部には、その方法の例さえあります。BitmapMetafileLockBitsBitmap

于 2012-04-30T19:10:02.740 に答える