0

私は毎秒20フレームを持っています。各フレームに線を描画すると、問題なく線が得られますが、背景画像が頻繁にスタックします。ランダムに10フレームの同じ画像を取得しますが、線はきれいに見えます。

if (cizik == null)
{
BitmapData imageData = CloneOrj2.LockBits(new Rectangle(0, 0, CloneOrj2.Width, CloneOrj2.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
UnmanagedImage tmp = new UnmanagedImage(imageData);
cizik = UnmanagedImage.Create(CloneOrj2.Width, CloneOrj2.Height, PixelFormat.Format24bppRgb);
tmp.Copy(cizik);
Drawing.Line(cizik, new IntPoint(XX, XX), new IntPoint(XX, XX), System.Drawing.Color.Yellow);
}
else
{ 
BitmapData imageData = CloneOrj2.LockBits(new Rectangle(0, 0, CloneOrj2.Width, CloneOrj2.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
UnmanagedImage tmp = new UnmanagedImage(imageData);
Drawing.Line(tmp, new IntPoint(XX, XX), new IntPoint(XX, XX), System.Drawing.Color.Yellow);
cizik = UnmanagedImage.Create(CloneOrj2.Width, CloneOrj2.Height, PixelFormat.Format24bppRgb);
tmp.Copy(cizik);
}

DrawScreenActual.Image = (System.Drawing.Image)cizik.ToManagedImage().Clone();

ご協力いただきありがとうございます!

4

1 に答える 1

0

コードが完全に表示されていない可能性がありますが、LockBits の後でビットのロックを解除する必要があります。

これを行うには、ビットマップ オブジェクトで UnlockBits メソッドを使用する必要があります。DrawLine の後に呼び出します。

たぶん問題があります!

于 2013-05-06T22:11:21.150 に答える