0

ピクチャーボックスを作成し、サーバーへの最初のリクエストでデスクトップ全体を取得して表示します。その後のすべてのリクエストで、変更がある場所を除いてどこでも透明な差分画像のみを取得しています。

これらの2つの画像を一緒に「オーバーレイ」するにはどうすればよいですか?または、それ以外の場合は、画像ボックスでそれらを組み合わせますか?

ありがとうございました!

4

1 に答える 1

1

これを試して:

for (var x = 0; x < sourceBitmap.Width; x++)
{
    for (var y = 0; y < sourceBitmap.Height; y++)
    {
        var pixelColor = sourceBitmap.GetPixel(x, y);

        // copy all non-transparent pixels
        if (pixelColor.A != Byte.MaxValue) 
        {
            destinationBitmap.SetPixel(x, y, pixelColor);
        }
    }
}

sourceBitmap と destinationBitmap の両方が System.Drawing.Bitmap オブジェクトであると想定しています。ソース ビットマップは、画像ボックスに表示されているものになりますが、pictureBox.Image プロパティによって返されるものを使用しないでください。Clone() メソッドでコピーを作成してからスワップを行うか、取得します。例外。

このメソッドが遅すぎる場合は、Bitmap オブジェクトで LockBits メソッドと UnlockBits メソッドを使用して、ダイレクト メモリ アクセスを使用してビットマップ データを操作してみてください。

于 2012-07-10T16:27:36.677 に答える