Вывод спрайта 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д