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 回答