Вывод спрайта BMP - Free Pascal
Формулировка задачи:
Как организовать вывод BMP или любой другой формат изображения в FPC
Решение задачи: «Вывод спрайта BMP»
textual
Листинг программы
How to load a BMP image from disk ? Suppose we have a 24 bits format uncompressed BMP image on file 'image.bmp'. The following routine puts this image on screen, on the top-left corner. procedure LoadBMP; var f:file; bitmap:pointer; size:longint; begin {$I-} Assign(f,'image.bmp'); Reset(f,1); {$I+} if (IOResult <> 0) then Exit; size:=FileSize(f); GetMem(bitmap,size); BlockRead(f,bitmap^,size); Close(f); PutImage(0,0,bitmap^,NormalPut); FreeMem(bitmap); end;
Объяснение кода листинга программы
- Создаем процедуру LoadBMP
- Инициализируем переменные: — f:file (объект для работы с файлом) — bitmap:pointer (указатель на память, где будет храниться изображение) — size:longint (переменная для хранения размера изображения)
- Открываем файл 'image.bmp' с помощью Assign(f,'image.bmp') и Reset(f,1)
- Проверяем корректность открытия файла с помощью IOResult (если IOResult <> 0, значит что-то пошло не так и файл не открылся)
- Получаем размер файла с помощью FileSize(f)
- Выделяем память под изображение с помощью GetMem(bitmap,size)
- Читаем файл в выделенную память с помощью BlockRead(f,bitmap^,size)
- Закрываем файл с помощью Close(f)
- Выводим изображение на экран с помощью PutImage(0,0,bitmap^,NormalPut)
- Освобождаем память с помощью FreeMem(bitmap)
- Если что-то пошло не так (IOResult <> 0), то выходим из процедуры с помощью Exit.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д