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

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

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

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

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

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

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

виводить картинку битового образу bm на поверхню компонента image 1 (параметри х і у визначають положення лівого верхнього кута картинки на поверхні компонента).
Якщо перед застосуванням методу Draw властивості Transparent об’єкту TBitMap привласнити значення True, то фрагменти малюнка, пофарбовані кольором, що збігається з кольором лівого нижнього кута картинки, які не будуть виведені – через них буде як би переглядати фон. Якщо в якості ” прозорого ” потрібно використовувати колір, відмінний від кольору лівої нижньої точки малюнка, то властивості Transparentcoior слід привласнити значення символьної константи, що позначає необхідний колір.
Наступна програма, текст якої наведено в лістингу 10.7, демонструє використання бітових образів для формування зображення з декількох елементів.

Лістинг 10.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.

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

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