//我给你加个注释吧
//获取屏幕指定点的颜色
public Color GetColor(int x, int y)
{
int hdc = GetDC(IntPtr .Zero ); //获取屏幕HDC句柄
uint pixel = GetPixel(hdc, x, y); //获取屏幕上(x,y)点的颜色值,这个值是一个32位无符号整数。
ReleaseDC(IntPtr.Zero, hdc); //释放HDC句柄
//Color.FromArgb(red颜色分量,green颜色分量,blue颜色分量)
//pixel & 0x000000FF取低8位red色颜色分量
//(pixel & 0x0000FF00) >> 8 去8-16为green颜色分量,并且右移8位
//其他类似
Color color = Color.FromArgb((int)(pixel & 0x000000FF), (int)(pixel & 0x0000FF00) >> 8, (int)(pixel & 0x00FF0000) >> 16);
return color;
}
有必要这么复杂么
var bmp = new Bitmap(你的屏幕尺寸,可以从Screen类获取);
var g = Graphics.FromImage(bmp);
g.CopyFromScreen(你的屏幕尺寸)
bmp有获取像素点的方法
var bmp = new Bitmap(你的屏幕尺寸,可以从Screen类获取);
var g = Graphics.FromImage(bmp);
g.CopyFromScreen(你的屏幕尺寸)
bmp有获取像素点的方法