C#新手 如何获得当前坐标像素点的颜色信息。。。

没有头绪。。。希望代码尽量分成两部分{主要代码}{调用和输出}获得鼠标或者桌面某坐标的信息不是图片... 没有头绪。。。希望代码尽量分成两部分 {主要代码} {调用和输出}
获得鼠标或者桌面某坐标的信息 不是图片
展开
 我来答
liyan922107
2014-07-16 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:166万
展开全部
// x,y 分别为x轴,y轴坐标 返回System.Drawing.Color 可以直接显示

public System.Drawing.Color GetPixelColor(int x, int y)
{
IntPtr hdc = GetDC(IntPtr.Zero);
uint pixel = GetPixel(hdc, x, y);
ReleaseDC(IntPtr.Zero, hdc);
Color color = Color.FromArgb((int)(pixel & 0x000000FF),
(int)(pixel & 0x0000FF00) >> 8,
(int)(pixel & 0x00FF0000) >> 16);
return color;
}

//定义一个定时器 获取当前坐标上的像素点颜色
private void timer_Tick(object sender, EventArgs e)
{
textBox1.Text = GetPixelColor(Cursor.Position.X, Cursor.Position.Y).R.ToString() + " " + GetPixelColor(Cursor.Position.X, Cursor.Position.Y).G.ToString() + " " + GetPixelColor(Cursor.Position.X, Cursor.Position.Y).B.ToString();
}
更多追问追答
追问
当前上下文不存在GetDC GetPixel ReleaseDC
追答
你要添加引用
using System.Runtime.InteropServices;

然后
[DllImport("user32.dll")]
public static extern System.UInt32 GetPixel(IntPtr hdc, int xPos, int yPos);
[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
private static extern IntPtr ReleaseDC(IntPtr hc,IntPtr hDest);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式