C++程序 读取屏幕像素

C++程序 读取屏幕像素

获取有关屏幕像素的颜色信息是自动化软件执行的常见操作,该软件依赖屏幕上的活动。该过程是微不足道的,并且此类功能会借助图像/窗口读取库并入编程语言。本文将教您如何使用C++读取屏幕像素。 <windows.h>头文件可以帮助我们获取像素颜色。

GetPixel函数

可以调用 getpixel 函数来获取屏幕像素的颜色值,并将要读取像素值的坐标作为参数传递。

语法:

COLORREF GetPixel([in] HDC hdc, [in] int a, [in] int b);

参数:

  • hdc: 设备上下文的句柄(要读取像素的设备,例如显示器)
  • a: 要检查的像素的x坐标,以逻辑单位为单位。
  • b: 要检查的像素的y坐标,以逻辑单位为单位。

返回值: 返回值是 COLORREF 值,指定像素的RGB。如果像素超出剪辑区域,则返回值为 CLR_INVALID

读取屏幕像素

在下面的示例中,将获取单个像素的像素值。可以通过循环方法扩展此方法以获取一系列像素的颜色值。

示例:

//C++程序实现
//读取屏幕像素
#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
    //将设备上下文分配给当前输出设备
    HDC dng = GetDC(NULL);

    //调用GetPixel函数并传入设备上下文和坐标
    //坐标应在设备上下文的最大分辨率内
    //例如全高清显示器中的屏幕坐标X <1919
    COLORREF c = GetPixel(dng, 10, 150);

    //将数据美化为包含RGB值的元组输出
    //GetRValue函数返回像素的红色值
    //GetGValue函数返回像素的绿色值
    //GetBValue函数返回像素的蓝色值
    cout<< "(";
    cout<< (int)GetRValue(c)<< ", ";
    cout<< (int)GetGValue(c)<< ", ";
    cout<< (int)GetBValue(c)<< ")";

    //释放句柄
    ReleaseDC(NULL, dng);
}  

输出:

C++程序 读取屏幕像素

程序输出

说明: 首先使用NULL参数(用于屏幕)使用获取显示器的设备上下文。然后调用GetPixel函数,并将设备上下文以及像素的水平和垂直坐标作为参数发送过去。将返回数据存储在COLORREF变量中。稍后,通过GetRValue、GetBValue和GetGValue函数获得像素的红色、绿色和蓝色通道值,这些值被强制转换为适合输出。最后,使用ReleaseDC函数释放显示上下文句柄。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例