好的,我正在尝试更加高级的操作,其中一件事是学习如何从屏幕上的特定位置获取像素颜色或数据。我已经搜索了很多,但似乎大多数人都想在c或c++中完成这个操作。
我正在制作一个程序,用于扫描屏幕上的某个位置以查找特定颜色。如果该位置包含任何橙色,则我的窗口中的数字变为1(真)或0(假)。 我的窗口背景是透明的,如果这有影响的话。
我只遇到了Graphics.CopyFromScreen()和bitmap.GetPixel();
谢谢
好的,我正在尝试更加高级的操作,其中一件事是学习如何从屏幕上的特定位置获取像素颜色或数据。我已经搜索了很多,但似乎大多数人都想在c或c++中完成这个操作。
我正在制作一个程序,用于扫描屏幕上的某个位置以查找特定颜色。如果该位置包含任何橙色,则我的窗口中的数字变为1(真)或0(假)。 我的窗口背景是透明的,如果这有影响的话。
我只遇到了Graphics.CopyFromScreen()和bitmap.GetPixel();
谢谢
若要从屏幕中捕获特定矩形,请使用以下代码:
public Bitmap CaptureFromScreen(Rectangle rect)
{
Bitmap bmpScreenCapture = null;
if (rect == Rectangle.Empty)//capture the whole screen
{
rect = Screen.PrimaryScreen.Bounds;
}
bmpScreenCapture = new Bitmap(rect.Width,rect.Height);
Graphics p = Graphics.FromImage(bmpScreenCapture);
p.CopyFromScreen(rect.X,
rect.Y,
0, 0,
rect.Size,
CopyPixelOperation.SourceCopy);
p.Dispose();
return bmpScreenCapture;
}
public Color GetColorFromScreen(Point p)
{
Rectangle rect = new Rectangle(p, new Size(2, 2));
Bitmap map = CaptureFromScreen(rect);
Color c = map.GetPixel(0, 0);
map.Dispose();
return c;
}