Программа C++ для чтения пикселей экрана

Опубликовано: 18 Февраля, 2023

Получение информации о цвете пикселей экрана является обычной операцией, выполняемой программным обеспечением автоматизации, которое зависит от активности на экране. Процесс тривиален, и такая функциональность встроена в языки программирования с помощью библиотек чтения изображений/окна. Эта статья научит вас читать пиксели экрана в 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 .

Чтение пикселей экрана

В следующем примере будет получено значение пикселя для одного пикселя. Этот метод можно распространить на весь дисплей (используя цикл), чтобы получить значение цвета диапазона пикселей.

Пример:

Выход:

Объяснение: Сначала контекст устройства дисплея получается с помощью функции GetDC с аргументом NULL (для экрана). Затем выполняется вызов функции GetPixel, и в качестве аргумента передается контекст устройства вместе с координатами (горизонтальными и вертикальными) пикселя. Возвращаемые данные хранятся в переменной COLORREF. Позже значения красного, зеленого и синего каналов пикселя получаются с помощью функций GetRValue, GetBValue и GetGValue , которые приводятся к типу, чтобы сделать их подходящими для вывода. В конце контекст отображения освобождается с помощью функции ReleaseDC .