Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурРаб_ВМИП.doc
Скачиваний:
4
Добавлен:
03.11.2018
Размер:
760.83 Кб
Скачать

6.2.2. Создание изображений в виде битовых матриц и пиктограмм

В среде Delphi имеется встроенный Редактор Изображений – Image Editor (рис. 9), который вызывается командой Tools (Сервис)/Image Editor. Этот редактор позволяет создавать изображения в виде битовых матриц, пиктограмм, изображений курсоров и не только сохранять созданные изображения в виде файлов, но и сразу включать их в файл ресурсов приложения.

Рис. 9. Окно Image Editor

В пункте меню File среды можно выбрать опцию Open, открывая тем самым новый файл изображения, или опцию New – создать новый файл. В последнем случае необходимо выбрать вид файла. Например, требуется создать свой рисунок в виде битовой матрицы, чтобы затем вставить его в основную графику как легенду – список переменных, используемых при построении графика или пиктограмму в кнопку BitBtn. Тогда, выбор раздела Bitmap File из списка вида файла открывает окно, в котором предлагается установить размер матрицы по горизонтали и вертикали, а также выбрать набор цветов: 2, 16 или 256. После сделанных установок в окне Image Editor появятся границы будущего рисунка, в пределах которых, используя представленные инструменты и палитру, можно начать творить изображение. При этом палитра, открываемая левым квадратиком, используется при рисовании с помощью левой кнопки мыши, а палитра, открываемая правым квадратиком, – при рисовании с помощью правой кнопки мыши.

После прорисовки картинки файл следует сохранить с расширением *.bmp. В дальнейшем можно загрузить его с помощью окна Picture Editor, открываемого свойством Picture графического образа или в компонент BitBtn, используя свойство Glyph (или компонент MainMenu, используя свойство BitMap).

Файл пиктограммы для приложения создается аналогично. Только при выборе вида файла из списка необходимо выбрать раздел Icon File и сохранить пиктограмму в виде файла с расширением *.ico.

Чтобы ввести в приложение значок, отличный от стандартного, нужно выбрать команду Project/Options и на вкладке Application диалогового окна Project Options (Опции проекта) щелкнуть мышью по кнопке Load Icon (Загрузить Иконку). В стандартном окне папок найти и открыть требуемый файл пиктограммы (*.ico). После запуска приложения новый значок появится на месте стандартного.

В среде Lazarus (FreePascal) Редактор Изображений отсутствует, поэтому рисунок создается в одном из графических редакторов (например, Paint или Adobe Photoshop), сохраняется с расширением *.bmp или *.png и загружается с помощью свойства Picture графического образа Image или свойства Glyph в компонент BitBtn соответственно. При создании рисунка для кнопки BitBtn размеры его выбираются 16х16.

6.2.3. Создание рисованных изображений

Рисованные изображения получаются на холсте (поверхности формы или объекта Image) при выполнении программы с помощью различных инструментов. Изображение при этом представляет собой комбинацию простейших фигур – графических примитивов (точка, линия, круг или прямоугольник).

Холст состоит из отдельных точек – пикселей (рис. 10). Пиксель – это наименьший элемент поверхности рисунка, с которым можно манипулировать. Важное свойство пикселя – его цвет. Для описания цвета используется тип TColor. Каждая точка холста имеет координаты X и Y, которые измеряются в пикселях.

Рис. 10. Координаты точек холста

При выполнении графических операций используется текущий указатель (указатель позиции). Он представляет собой невидимый маркер, определяющий на холсте позицию, начиная с которой выполняется следующая графическая операция. Текущая позиция определяется горизонтальной (X) и вертикальной (Y) координатами. По умолчанию начало системы координат (0,0) находится в левом верхнем углу поверхности рисования (рис.10).

Координата Х возрастает при перемещении указателя слева на право, а координата Y – при перемещении его сверху вниз. Значения координат правой нижней точки холста зависят от размера холста. Размер холста можно получить, обратившись к свойствам Width (ширина) и Height (высота) области иллюстрации (Image1) или к свойствам формы ClientWidth и ClientHeight.

Поверхности (канва, холст) объекта, на который выводится графика, соответствует свойство Canvas. В свою очередь, свойство Canvas – это объект типа ТCanvas. Методы этого типа приведены в таблице 7, а способы применения – рис. 11. Они обеспечивают вывод графических примитивов, а свойства позволяет задать характеристики графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.

Табл. 7

Метод

Описание

Procedure Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4:Integer)

Чертит дугу эллипса в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3,Y3), а конец – на пересечении с лучом из центра в точку (X4,Y4). Дуга чертится против часовой стрелки.

Procedure Chord (X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer)

Чертит сегмент эллипса в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Начало дуги сегмента лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3,Y3), а конец – на пересечении с лучом из центра в точку (X4,Y4). Дуга сегмента чертится против часовой стрелки, а начальная и конечная точки дуги соединяются прямой.

Procedure Ellipse (X1, Y1,X2,Y2: Integer)

Чертит эллипс в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Заполняет внутреннее пространство эллипса текущей кистью.

Procedure Rectangle (X1,Y1,X2,Y2:Byte)

Вычерчивает и заполняет прямоугольник (X1,Y1) – (X2,Y2).

Procedure FillRect (const Rect : Trect)

Заполняет текущей кистью прямоугольную областьRect, включая ее левую и верхнюю границы, не затрагивая правую и нижнюю границы.

Procedure FloodFill (X,Y: Integer; Color: TColor; FillStyle: TFillStyle)

Производит заливку канвы текущей кистью. Заливка начинается с точки (X,Y) и распространяется во все стороны. Если FillStyle=fs Surface, заливка распространяется на все соседние точки с цветом Color, если FillStyle=fsBorder, заливка прекращается на точках с этим цветом.

Procedure Frame Rect (const Rect : Trect)

Очерчивает границы прямоугольника Rect текущей кистью толщиной в 1 пиксель без заполнения внутренней части прямоугольника.

При обращении к нужным методам предварительно задается цвет заполнения или цвет контура прямоугольной области.

Так, очистку экрана от нарисованных линий можно осуществить с помощью процедуры FillRect(clientrect) путем заливки белым цветом прямоугольной области экрана. Например, инструкции

Image1.Canvas. Brush.Color:=clWhite;

Image1.Canvas. FillRect(Rect(0,0, Image1.Width, Image1.Height))

заполнят всю прямоугольную область графического образа белым цветом, начиная с точки X,Y (0, 0).

При выводе графической информации приложение работает с устройством вывода, имеющим широкую цветовую палитру, а также инструменты для рисования: перо, кисть, шрифт.