Теперь рассмотрим, как можно использовать битовые образы для создания динамического (меняющегося) изображения — анимации.
Наиболее просто создать эффект меняющейся картинки можно путем вывода на экран (графическую поверхность) последовательности заранее подготовленных картинок (кадров). Кадры анимации обычно помещают в один файл (так удобнее их создавать). В начале работы программы "фильм" загружается в буфер (объект типа Bitmap).
Вывести на графическую поверхность фрагмент битового образа (загруженный битовый образ содержит все кадры, а нам нужен отдельный кадр) можно при помощи метода DrawImage.
Инструкция вызова метода DrawImage для отображения фрагмента битового образа в общем виде выглядит так:
Graphics->DrawImage(bitmap, r1, r2, GraphicsUnit::Pixel);
где:
Graphics — поверхность, на которую выполняется вывод фрагмента битового образа bitmap;
bitmap— битовый образ, фрагмент которого выводится на поверхность
Graphics;
r1— область на поверхности Graphics, в которую выполняется вывод фрагмента битового образа (объект Rectangle);
r2— фрагмент битового образа bitmap (объект Rectangle), который выводится на поверхность Graphics.
Рисунок 5. Метод DrawImage позволяет вывести на графическую поверхность фрагмент битового образа
Работу метода DrawImage при отображении фрагмента битового образа поясняет рис. 5.
ПрограммаDigitalClock (рис. 6) демонстрирует использование метода DrawImage для вывода на графическую поверхность фрагмента битового образа. Цифры, отображаемые в окне, — это фрагменты битового образа (рис. 7).
Форма программы Digital Clock приведена на рис. 8, конструктор формы и функции обработки событий — в листинге 3.