GetPixel在XP上很快,为什么WIN7就很卡

GetPixel在XP下很快,为什么WIN7就很卡?
本帖最后由 kayoo 于 2012-02-25 04:02:02 编辑
同样的代码,XP下用不了0.1秒,WIN7下却需要几秒钟,获取的时候整个屏幕也卡住了,请问如何解决呢?先谢过了。
PS:我查了一下,有人说XP是GDI显示,WIN7是DirectX显示,我想知道在DirectX下获取屏幕颜色的最佳代码是什么?一定不能那么卡。。。
------解决方案--------------------
scanline效率高一点
------解决方案--------------------
不是吧? 我这里测试 win7  正常速度也是秒取.

你是不是被什么杀毒给控制了?



procedure TForm1.Timer1Timer(Sender: TObject);
var
  i : UINT;
begin
  i := GetTickCount ;
  Label1.Caption := IntToHEX(  GetPixel(GetDC(0),Mouse.CursorPos.X,Mouse.CursorPos.Y) , 8 );
  label2.Caption := IntToStr( GetTickCount - i );
end;


------解决方案--------------------
引用:
不是吧? 我这里测试 win7 正常速度也是秒取.

你是不是被什么杀毒给控制了?



Delphi(Pascal) code

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i : UINT;
begin
  i := GetTickCount ;
  Label1.Caption := IntToHEX( ……


估计是大量的GetPixel
------解决方案--------------------
尽量不要用GetPixel,请用ScanLine代替,后者直接操作内存,速度是前者的n倍!