Четвертый Borland C++ и его окружение

       

Класс TBitmap


Класс TBitmap инкапсулирует независимый от устройства битовый массив Windows. Он предусматривает различные конструкторы и

функции-элементы для работы с битовым массивом.

Построить битовый массив можно непосредственно или косвенным

путем. Используя косвенное построение, вы можете задать существующий объект битового массива, указатель на структуру BITMAP, метафайл, контекст устройства TDC и др.

В конструкторе объекта битового массива задаются высота, ширина битового массива в элемента изображения, число цветовых

плоскостей битового массива и число бит на элемент изображения.

Вы можете также создать объекты битового массива из существующих

битовых массивов инкапсулированных в объекте TBitmap или содержащихся в структуре BITMAP.

TBitmap предусматривает два конструктора, которые вы можете

использовать для создания битового массива, совместимого с данным

контекстом устройства. Первый конструктор создает битовый массив

заданного размера (высоты и ширины). Третий параметр позволяет

сделать битовый массив выгружаемым. Второй конструктор создает



битовый массив с заданной высотой и шириной, совместимый с контекстом устройства из DIB.

Вы можете создавать битовые массивы из буфера обмена Windows, метафайла или объекта DIB. Чтобы создать битовый массив из

буфера обмена, нужно только передать конструктору ссылку на объект Clipboard. Конструктор получает описатель битового массива в

буфере обмена и строит по этому описателю объект битового массива. Чтобы создать объект из метафайла, нужно передать TMetaFilePict&, TPalette& и TSize&. Конструктор на основе палитры инициализирует совместимый с устройством битовый массив. Чтобы создать

битовый массив из битового массива, независимого от устройства,

нужно передать конструктору TDib&. Можно также задать палитру.

Можно создать битовый массив, и загрузив его из модуля. При этом

конструктору передается HINSTANCE модуля, содержащего битовый

массив, и идентификатор ресурса битового массива. Можно также

создать новый объект битового массива из существующего описателя




HBITMAP.

Вы можете получить доступ к TBitmap через HBITMAP или структуру BITMAP. Чтобы получить HBITMAP из объекта TBitmap, используйте операцию HBITMAP с объектом TBitmap в качестве параметра.

Операция HBITMAP почти никогда явно не вызывается. Для преобразования объекта TBitmap в структуру BITMAP используется функция GetObject (фактические биты массива можно получить с помощью функции GetBitmapBits).

TBitmap инкапсулирует ряд стандартных вызовов API для работы

с палитрами. С помощью функций Width() и Height() вы можете получить ту же информацию, что и с помощью GetObject. Каждая функция

возвращает характеристики объекта битового массива.

Функции GetBitmapDimension и SetBitmapDimension позволяют

вам найти и изменить размеры битового массива. GetBitmapDimension

имеет единственный параметр - ссылку на объект TSize и помещает в

объект TSize размер битового массива. SetBitmapDimension имеет

два параметра: ссылку на объект TSize, содержащий новый размер

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

Функции GetBitmapDimension и SetBitmapDimension изменяют не

фактический размер битового массива в элементах изображения, а

его физический размер, который часто используется программами для

печати или вывода растровых изображений. Это позволяет вам настроить размер битового массива в зависимости от размера физического экрана.

Функции GetBitmap и SetBitmap позволяют вам изменить и опросить биты битового массива. Эти функции имеют по два параметра:

размер массива в байтах и указатель на битовый массив. SetBitmapBits копирует массив в битовый массив (копируется заданное в параметре число байт). GetBitmap заполняет массив битами из битового массива.

Поместить массив в буфер обмена можно с помощью функции ToClipboard. Так как эта функция фактически удаляет объект из приложения, вам следует для создания временного объекта использовать

конструктор TBitmap.

Tbitmap имеет две функции Create. В параметре первой функции

указывается ссылка на объект TBitmap. По существу эта функция копирует переданный объект TBitmap. Во второй функции Create указываются ссылки на объект TDib и объект TPalette. Create создает

контекст устройства, совместимый с TPalette.


Содержание раздела