- •Работа с графикой Компонент Область рисования (tPaintBox)
- •Обработка событий. Создание игры.
- •Работа с графикой Понятие холста
- •Принцип отрисовки изображений в Windows
- •Класс tGraphics
- •Свойства и методы класса tCanvas
- •Свойства холста
- •Наследники класса tGraphics Класс Точечное изображение (tBitmap)
Наследники класса tGraphics Класс Точечное изображение (tBitmap)
Это специальный класс, с помощью которого можно хранить, загружать из файла I или буфера обмена Windows, сохранять в файле или буфере обмена графические точечные изображения в формате битовой карты (расширение .BMP), а также выполнять над ними ряд вспомогательных операций. Использование класса TBitmap неразрывно связано с понятием холста.
Свойства и методы класса TBitmap приведены в табл. 7 и 8.
Таблица 7. Свойства класса TBitmap
Свойство |
Назначение |
Canvas |
Область изображения (холст), на которой можно выполнять рисование. Данное свойство используется, когда надо подготовить изображение, нарисовав на нем, например, спрайты в скрытом режиме, а затем быстро отобразить рисунок на экране. Такой подход применяется, в частности, при создании анимационных эффектов |
Empty |
Имеет значение True, если объект не содержит никакого изображения |
PixelFormat |
Число битов на пиксел (глубина цвета) |
Scan Line |
Массив указателей на каждую строку точечного изображения. Число элементов в массиве равно значению свойства Height. С помощью указателя можно получить доступ к конкретному пикселу. Пример использования: var BitMap : TBitMap; P : PbyteArray;... Р := BitMap.ScanLine[y]; forx := 0 to BitMap.Width-1 do P[x] := Color; |
TransparentColor |
Цвет, который будет считаться прозрачным (не отображаемым) при выводе изображения на экран |
TransparentMode |
Способ определения прозрачного цвета. Цвет определяется по пикселу в левом верхнем углу точечного изображения или задается программно |
Таблица 8. Методы класса TBitmap
Метод |
Назначение |
procedure Freelmage; |
Уменьшение объема памяти для хранения точечного изображения путем уменьшения глубины цвета |
procedure Load From ResourceID( Instance: THandle; ResID: Integer); |
Загрузка изображения из ресурсов программы |
procedure Mask( TransparentColor: TColor); |
Установка конкретного цвета изображения в качестве прозрачного |
Класс TBitmap можно использовать для создания несложной спрайтовой мультипликации следующим образом. В память компьютера загружается заранее подготовленное фоновое изображение и набор небольших картинок-спрайтов. Затем используется динамически созданный объект класса TBitmap. В него сначала копируется фон, а затем на него накладываются отдельные спрайты. Данные заносятся в область объекта, доступную для рисования (свойство Canvas). Можно использовать такие методы холста, как Draw, CopyRect и другие. После этого сформированный рисунок выводится на экран (свойство Bitmap свойства Picture компонента TImage) и становится видимым.
Промежуточный объект класса TBitmap необходим, потому что если выполнять вывод спрайтов сразу на фоновое изображение, то при последующих циклах создания итогового рисунка на этом изображении останутся предыдущие спрайты.