c# 返回指点坐标点颜色的代码,请指教

2024-12-16 07:47:37
推荐回答(3个)
回答1:

//我给你加个注释吧
//获取屏幕指定点的颜色
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;
}

回答2:

有必要这么复杂么

var bmp = new Bitmap(你的屏幕尺寸,可以从Screen类获取);
var g = Graphics.FromImage(bmp);
g.CopyFromScreen(你的屏幕尺寸)
bmp有获取像素点的方法

回答3:

var bmp = new Bitmap(你的屏幕尺寸,可以从Screen类获取);
var g = Graphics.FromImage(bmp);
g.CopyFromScreen(你的屏幕尺寸)
bmp有获取像素点的方法