拾色器 - C#

时间:2013-06-04 02:23:17

标签: c# windows colors mouse picker

我正在C#上制作一个颜色选择器,我想要GetPixel函数,捕获我的所有窗口,这样我就可以用来捕获窗口上的任何颜色,无论它是什么窗口,(电子邮件,图像或其他任何东西)。

我该怎么做?

我有一个用于放置颜色的pictureBox。

1 个答案:

答案 0 :(得分:1)

This blog post似乎提供了一个解决方案。实质上,您运行以下代码以从鼠标在屏幕上的任何位置获取颜色:

IntPtr hdc = GetDC(IntPtr.Zero);
uint pixel = GetPixel(hdc, currentPoint.X, currentPoint.Y);
ReleaseDC(IntPtr.Zero, hdc);
Color color = Color.FromArgb((int)(pixel & 0x000000FF),
    (int)(pixel & 0x0000FF00) >> 8,
    (int)(pixel & 0x00FF0000) >> 16);

我不确定我应该在这里复制多少,但是如果你从该页面下载源代码,它应该回答你的一大堆问题。

如果这不起作用,请看一下这个答案:https://stackoverflow.com/a/1483963/1043380