лк6_Графический вывод в Объектном Паскале.ppt
- Количество слайдов: 16
Графический вывод в Объектном Паскале лекция № 6
Схема формирования изображения на экране монитора компьютера ЦП Видео память Видео адаптер Видеопамять (видеобуфер)— часть оперативной памяти, отведённая для хранения данных, которые используются для формирования изображения на экране монитора. Видеоадаптер – устройство (электронная плата), преобразующее коды цветов пикселей в напряжение, управляющее монитором. Видеодрайвер – программа управления видеоадаптером. Монитор Изображение совокупность святящихся точек – пикселей. Виды мониторов: CRT (Cathod Ray Tube) LCD (Liquid Crystal Display)
Формирование цвета пикселя • Цвет пикселя – результат смешения трех цветов: красного ( R), зеленого (G), синего (B). • Компьютерная техника использует свойства человеческого зрения. Чувствительные элементы глаза бывают двух типов: палочки и колбочки. Палочки не различают цвет. Колбочки бывают трех видов: • 1 вид реагирует на красный цвет (длина волны~580 нм); • 2 вид – на зеленый (длина волны~545 нм); • 3 вид – на синий (длина волны~440 нм). Все остальные цвета получаются как результат смешения этих трех.
Необходимый объем видеопамяти Vвп=N*B*S, где N – число пикселей на экране, зависит от разрешения (например, N=1024*768=786432), B – число битов, отводимых на кодирование цвета пикселя (1 бит – монохромное изображение, 1 байт – 256 цветов, и т. д. ) S – число страниц (хранимых изображений экрана). Полноцветное изображение в современных компьютерах: 1 пиксель – 3 байта, всего 16 777 216 цветов => Vвп=786 432* 16 777 216 3, 14 Мб /1 стр.
Четырехбайтовое кодирование цвета Наложение, мерцание, интенсивность, цветовая палитра, … R G B 0 -255 (255, 0, 0) – чистый красный цвет; (0, 255, 0) – чистый зеленый цвет; (0, 0, 255) – чистый синий цвет; Всего 16 777 216 цветов.
Понятие о цветовой палитре • Если объем видеопамяти недостаточен, то приходится искать компромисс между разрешением и количеством цветов. • Возможный выход использовать не все цвета монитора, а лишь некоторые из них. Например, 1 пиксель – 1 байт, всего 256 цветов. • Цветовая палитра – таблица кодов. • Цветовые палитры: системная, текущая, элементов управления Windows, … № цвета 3 -байтовый код 0 1 … … … 255 … …
Модели формирования цвета: RGBмодель B/255 Длина стороны куба=1 Black (0, 0, 0) White (1, 1, 1) Red (1, 0, 0) Green (0, 1, 0) Blue (0, 0, 1) G/255 Magenta(1, 0, 1) Cyan (0, 1, 1) Yellow (1, 1, 0) R/255
Формирование цвета в Объектном Паскале • Function RGB (R, G, B: Byte): Longint; определение цвета по составляющим компонентам; • Function Get. RValue(rgb: Long. Int): Byte; выделение красной составляющей из цвета в формате RGB; аналогичные функции: Get. GValue, Get. BValue. • Перед использованием значение RGB надо преобразовать к типу TColor с помощью функции Function TColor (RGB: Long. Int): TColor; • Обратное преобразование: Function Color. To. RGB(Color: Tcolor): Long. Int;
Вывод графического изображения в ОП • Все компоненты, с помощью которых можно рисовать, имеют свойство Canvas (канва, холст) класса TCanvas. • Например, можно рисовать в клиентской области формы, так как форма имеет свойство Canvas (Form 1. Canvas). Можно использовать компоненту Paint. Box (панель System) , ограничивающую прямоугольную область рисунка на форме, так как имеется свойство Form 1. Paint. Box 1. Canvas.
Компонента Paint. Box
Canvas Свойства Pen (перо) Brush (кисть) • color; • Style (например, ps. Solid, ps. Dot) • Style (например, bs. Solid); • … • Bit. Map – пользователь ская штриховка • … Методы Массив пикселей, свойство Pixel[i, j] типа TColor Font (шрифт) • Name (Arial, …); • Size; • Color; • … Рисование линий и геометрических фигур: • Line. To • Ellipse; • …
Пример графического вывода procedure TForm 1. Form. Paint(Sender: TObject); Begin {обратите внимание на обработчик!} Canvas. Brush. Color: =TColor(RGB(255, 200)); {pink} Canvas. Brush. Style: =bs. Solid; Canvas. Pen. Color: =cl. Blue; Canvas. Pen. Width : =3; Canvas. Pen. Style: =ps. Solid; Canvas. Ellipse(200, 100, 100); Canvas. Move. To(10, 50); Canvas. Line. To (50, 150); Canvas. Font. Name: ='Times New Roman'; Canvas. Font. Color: =cl. Green; Canvas. Font. Size: =16; Canvas. Brush. Color: =Color; {Фон текста – цвет формы} Canvas. Text. Out(50, 300, 'Проба'); End;
Результат приложения x y
Другие классы для вывода графических изображений • TImage – для рисования простых фигур (графических примитивов). • TChart – для вывода диаграмм, в том числе графиков.
Другие классы, обладающие свойством Canvas • TBit. Map – для хранения изображения в виде файла формата. bmp. • TMeta. File - для хранения изображения в векторных форматах (. wmf, . emf). • TImage – контейнер для работы с файлами любого формата. • Эти классы, кроме свойства Canvas, еще имеют свойство Picture, обладающее методами Save. To. File, Load. From. File.
Работа с файлами изображений • Компоненты TOpen. Picture. Dialog (TSave. Picture. Dialog) панели Dialogs – диалоговые окна открытия (сохранения) графического файла. • if Save. Picture. Dialog 1. Execute Then Image 1. Picture. Save. To. File(Save. Picture. Dialog. File. Name); … • if Open. Picture. Dialog 1. Execute Then Image 1. Picture. Load. From. File(Open. Picture. Dialog. File. Name); …
лк6_Графический вывод в Объектном Паскале.ppt