gpt4 book ai didi

c# - 确定 winforms 应用程序中像素的颜色

转载 作者:行者123 更新时间:2023-11-30 13:33:02 24 4
gpt4 key购买 nike

我希望能够确定屏幕上某个点的 winform 的背景颜色,这样我就可以根据该特定颜色采取一些措施。遗憾的是,System.Drawing 库似乎没有指定使我能够这样做的方法。

那我应该如何确定某一点的颜色呢?

最佳答案

使用那个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;

namespace ColorUnderCursor
{
class CursorColor
{
[DllImport("gdi32")]
public static extern uint GetPixel(IntPtr hDC, int XPos, int YPos);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out POINT pt);

[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetWindowDC(IntPtr hWnd);

/// <summary>
/// Gets the System.Drawing.Color from under the mouse cursor.
/// </summary>
/// <returns>The color value.</returns>
public static Color Get()
{
IntPtr dc = GetWindowDC(IntPtr.Zero);

POINT p;
GetCursorPos(out p);

long color = GetPixel(dc, p.X, p.Y);
Color cc = Color.FromArgb((int)color);
return Color.FromArgb(cc.B, cc.G, cc.R);
}
}

[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public POINT(int x, int y)
{
X = x;
Y = y;
}
}
}

关于c# - 确定 winforms 应用程序中像素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10120665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com