Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Середовище.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.07 Mб
Скачать

Бітові образи

При роботі з графікою зручно використовувати об'єкти типу TBitMap (бітовий образ). Бітовий образ являє собою, що знаходиться в пам'яті комп'ютера, і, отже, невидиму графічну поверхню, на якій програма може сформувати зображення. Зміст бітового образа (картинка) легко і, що особливо важливо, швидко може бути виведене на поверхню чи форми області висновку ілюстрації (image). Тому в програмах бітові образи звичайно використовуються для збереження невеликих зображень, наприклад, картинок командних кнопок.

Завантажити в бітовий образ потрібну картинку можна за допомогою методу LoadFromFlie, указавши як параметр ім'я BMP-файлу, у якому знаходиться потрібна ілюстрація.

Наприклад, якщо в програмі оголошена перемінна pic типу TBitMap, те після виконання інструкції

pic.LoadFromFiie('с:\images\aplane.bmp')

бітовий образ pic буде містити зображення літака.

Вивести вміст бітового образа (картинку) на поверхню чи форми області висновку ілюстрації можна шляхом застосування методу Draw до відповідного властивості поверхні (canvas). Наприклад, інструкція

Image1.Canvas.Draw(x,у, bm)

виводить картинку бітового образа bm на поверхню компонента image1 (параметри х и у визначають положення лівого верхнього кута картинки на поверхні компонента).

Якщо перед застосуванням методу Draw властивості Transparent об'єкта TBitMap привласнити значення True, то фрагменти малюнка, пофарбовані кольором, що збігається з кольором лівого нижнього кута картинки, не будуть виведені — через них буде як би переглядати фон. Якщо в якості "прозорого" потрібно використовувати колір, відмінний від кольору лівої нижньої крапки малюнка, то властивості Transparentcoior варто привласнити значення символьної константи, що позначає необхідний колір.

Наступна програма, текст якої приведений у лістингу 4.7, демонструє використання бітових образів для формування зображення з декількох елементів.

Лістинг 4.7. Використання бітових образів

unit aplanes_;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs;

type

TForml = class(TForm)

procedure FormPaint(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Forml: TForm1;

sky,aplane: TBitMap; // бітові образи: небо і літак

implementation

($R *.DFM}

procedure TForm1.FormPaint(Sender: TObject);

begin

// створити бітові образи

sky := TBitMap.Create;

aplane := TBitMap.Create;

// завантажити картинки

sky.LoadFromFile('sky.bmp');

aplane.LoadFromFile('aplane.bmp') ;

Form1.Canvas.Draw(0,0,sky); // малювання фону

Form1.Canvas.Draw(20,20,aplane); // малювання лівого літака

aplane.Transparent:=True;

// тепер елементи малюнка, колір яких збігається з кольором

// лівої нижньої точки бітового образа, не малюється

Form1.Canvas.Draw(120,20,aplane);

// малювання правого літака

// звільнити пам'ять sky.free;

aplane.free;

end;

end.

Після запуску програми у вікні додатка (мал. 4.14) з'являється зображення літаків, що летять на фоні неба. Фон і зображення літака -бітові образи, що завантажуються з файлів. Біле поле навколо лівого літака показує дійсний розмір картинки бітового образа aplane. Біле поле навколо правого літака відсутне, тому що перед його виводом властивості Transparent бітового образа було привласнене значення True.

Рис. 4.14 Вплив значення властивості Transparent на висновок зображення