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