326______________________________________________Глава 5

заключается лишь в способе их хранения внутри файлов и в средствах доступа к
ним. Битовая матрица (файл с расширением .bmp) отображает цвет каждого пик
селя в изображении. При этом информация хранится таким образом, что любой
компьютер может отобразить картинку с разрешающей способностью и количест-
вом цветов, соответствующими его конфигурации.

Пиктограммы (файлы с расширением Лео) — это маленькие битовые матри
цы. Они повсеместно используются для обозначения значков приложений, в быст-
рых кнопках, в пунктах меню, в различных списках. Способ хранения изображе-
ний в пиктограммах схож с хранением информации в битовых матрицах, но име-
ются и различия. В частности, пиктограмму невозможно масштабировать, она со
храняет тот размер, в котором была создана.

Метафайлы (Metafiles) хранят не последовательность битов, из которых состо-
ит изображение, а информацию о способе создания картинки. Они хранят последо-
вательности команд рисования, которые и могут быть повторены при воссоздании
изображения. Это делает такие файлы, как правило, более компактными, чем би
товые матрицы.

C++Builder 4 может работать со следующими файлами:

Тип файла	Расширение
JPEG Image File	•JPg> -Jpeg
Битовые матрицы (Bitmaps)	.bmp
Пиктограммы	.ico
Enhanced Metafiles	.emf
Metafiles	.wmf

5.1.1.4 Классы для хранения графических объектов TPicture, TBitmap,
TIcon и TMetafile

Выше были рассмотрены типы графических файлов. Для хранения графиче-
ских объектов, содержащихся в битовых матрицах, пиктограммах и метафайлах,
в C++Builder определены соответствующие классы — TBitmap, TIcon и TMetafile.
Все они являются производными от абстрактного базового класса графических
объектов TGraphic. Кроме того определен класс, являющийся надстройкой над
TBitmap, TIcon и TMetafile и способный хранить любой из этих объектов. Это
класс TPicture, с которым вы уже познакомились в начале этой главы. Он имеет
свойство Graphic, которое может содержать и битовые матрицы, и пиктограммы,
и метафайлы. Более того, он может содержать и объекты определенных пользова-
телем графических классов, производных от TGraphic. Для доступа к графическо-
му объекту можно использовать свойство TPicture->Graphic, но если тип графиче-
ского объекта известен, то можно непосредственно обращаться к свойствам TPic-
ture->Bitmap, TPicture->Icon или TPicture->Metafile.

Для всех рассмотренных классов определены методы загрузки и сохранения в
файл:

void   fastcall LoadFromFile(const System::AnsiString Filename);

void   fastcall SaveToFile(const System::AnsiString Filename);

При этом для классов TBitmap, TIcon и TMetafile формат файла должен соот-
ветствовать классу объекта. Объект класса TPicture может оперировать с любым
форматом.

Для всех рассмотренных классов определены методы присваивания значений
объектов:

void   fastcall Assign(TPersistent* Source);