1

全体を知っている

Bitmap bmp = new Bitmap(100,100) ;
Graphics graphics = Graphics.FromImage(bmp) ;

しかし、それは私がする必要があることではありません。基本的に、私がやろうとしているのは、画面上での描画方法を少し変更することです (中央に線のある長方形です)。長方形の背景を変更する必要があります (これは、ピクセル比較または他の同様の方法で行うことができます)。

どういうわけかそれをビットマップに変えることができれば。ピクセルレベルでグラフィックオブジェクトを取得/設定/変更する方法はありません。

4

3 に答える 3

0

Bob Powell は、画像ビットへの直接アクセスに関する優れた記事を書いています。

https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx

于 2012-05-17T03:42:25.647 に答える
0

次のように for ループを使用してこれを行うことができます。

for(int i = 0; i < bmp.Width; i++)
{
    for(int j = 0; j < bmp.Height; j++)
    {
        var pixel = bmp.GetPixel(i, j);
        //do stuff with pixel here :)
    }
}

編集: Tilak のコメントを見た後、パフォーマンスが問題である場合、彼は正しいです! (ありがとう、私は LockBits について知りませんでした! +1) いくつかの例はMS BitmapData クラス ページにあります。ただし、これが複雑に思われる場合は、上記の方法でうまくいくはずです:)

于 2012-05-17T04:31:49.140 に答える
0

グラフィックスを使用したら、ビットマップを保存するだけです。グラフィックスで行われた変更はビットマップに反映されます。

于 2012-05-17T04:53:00.347 に答える