Copyright © 2010 Promsite. All Rights Reserved.


Выбор цвета часть II (GetPixelColor)

Автор В. Алексеев aka prom






P  R  O  M  S  I  T  E
Статьи по С++Builder 6
стр. 1
Download: исполняемый файл GetPixelColor
стр. 1

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.

Фрагмент кода модуля формы Main.cpp
       Когда я начал работу над проектом, то представлял, что код будет значительно сложнее. В принципе получился аналог знаменитой программы GetPixel, но кода этой программы  естественно не видел, а " цвет он и в Африке цвет" . Единственная трудность над которой поломал голову, это как сделать временную блокировку, т.е. зафиксировать цифровое значение цвета для записи его в буфер и обратное "оживление" программы. Перебрав несколько вариантов, в т.ч. и с API пришел к выводу, что они слишком громоздкие и должен же быть какой-то простой вариант. В итоге он нашелся, что подтвердило пословицу "ничто не ново под Луной". Но в коде cpp сознательно не показываю, предлагаю самим потренироваться, и возможно найдется лучший вариант.

       Фундамент программы образуют всего две функции: это GetDC(NULL) и GetPixel(hdc,X,Y). Первая возвращает контекст устройста, в данном случае дисплея. Параметр NULL указывает, что работать будем со всей поверхностью экрана. Вторая функция возвращает цвет пикселя в указанной точке с координатами X  и Y. 

       Как работает программа понятно интуитивно. Единственное, для того чтобы скопировать шестнадцатеричное значение цвета пикселя необходимо сначала приостановить программу с помощью клавиши левый CTRL, а затем копировать в буфер. Для продолжения работы программы достаточно повторно нажать эту же клавишу.

       Объединив проекты из "Выбор цвета" части 1 и 2 можно получить полноценную программу представляющую интерес для дизайнера. Кроме Hex, Dec, RGB  форматов представления цвета в цифровом виде другие экзотические форматы не рассматривал, т.к. практически никогда их не встречал и не использовал. У кого есть интерес, думаю, что сделать это не сложно.
Интерфейс программы GetPixelColor