|
|||||||||||||||||
Основы программирования. Занятие 1. Реализация изображений. Графические методы в Delphi.. Задание: Изучите теорию, выполните предложенные задания. Код отправьте скриншотом или текстовым файлом педагогу «Вконтакте».. Пиксели и цветСтр 1 из 4Следующая ⇒ Основы программирования Занятие 1. Реализация изображений. Графические методы в Delphi. Задание: Изучите теорию, выполните предложенные задания. Код отправьте скриншотом или текстовым файлом педагогу «Вконтакте». Пиксели и цвет У вас наверняка возник вопрос: «А как в программах для Windows выполняется рисование»? Каждый компонент, на котором можно нарисовать, имеет свойство Canvas (холст), с помощью его свойств и методов можно нарисовать все, что угодно.
Определить или изменить цвет отдельных пикселей можно с помощью свойства-массива Pixels. У каждого пикселя две стандартных координаты: x — расстояние от левой границы холста, y — расстояние от верхней границы. Точка (0,0) — это левый верхний угол. Чтобы узнать или поменять цвет пикселя с координатами (x,y), используют обращение Canvas.Pixels[x,y]. Некоторые элементы формы (например, заголовок и рамка) недоступны для рисования («обычными» методами). Область, с которой можно работать, называется клиентской, ее ширина и высота определяются через свойства формы ClientWidth и ClientHeight. Поскольку отсчет координат начинается с нуля, нижний правый пиксель клиентской области имеет координаты (ClentWidth-1,ClientHeight-1).
Легко понять, что в этой программе в двойном цикле перебираются все пиксели, и для каждого устанавливается красный цвет, который обозначается как clRed. Поскольку этот обработчик является методом формы, здесь запись Canvas обозначает то же самое, что Form1.Canvas, то есть, мы рисуем прямо на форме.
Цвет можно задать и по-другому, а формате RGB (red — красный, green — зеленый, blue —синий). Каждая из этих составляющих цвета — целое число в интервале от 0 до 255.
Цвет в Delphi — это целое число, занимающее 4 байта. В принципе, можно прямо записывать это число в массив Pixels, при этом удобнее всего использовать шестнадцатеричную запись, где каждая составляющая кодируется двумя шестнадцатеричными цифрами (и занимает 1 байт). Перед шестнадцатеричными числами в Паскале ставится знак $.
Возможно, вы ожидали снова увидеть бирюзовый цвет (смесь зеленого с синим), а получился — желтый, то есть, смесь зеленого с красным. Дело в том, что в такой записи старший байт определяет синий цвет, следующий — зеленый и младший — красный. Функции GetRValue, GetGValue и GetBValue позволяют выделить из цвета красную, зеленую и синюю составляющие. Все они возвращают байтовое значение.
Переменная color, в которую сначала записывается цвет пикселя, объявлена как TColor — специальный тип данных для кодирования цвета. По сути, это целое число, но именно такое объявление более грамотно, потому что явно показывает назначение переменной. Цвет пикселей можно получать в результате вычислений, при этом могут получиться весьма интересные узоры.
|
|||||||||||||||||
|