Вывод спрайта 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;

Объяснение кода листинга программы

  1. Создаем процедуру LoadBMP
  2. Инициализируем переменные: — f:file (объект для работы с файлом) — bitmap:pointer (указатель на память, где будет храниться изображение) — size:longint (переменная для хранения размера изображения)
  3. Открываем файл 'image.bmp' с помощью Assign(f,'image.bmp') и Reset(f,1)
  4. Проверяем корректность открытия файла с помощью IOResult (если IOResult <> 0, значит что-то пошло не так и файл не открылся)
  5. Получаем размер файла с помощью FileSize(f)
  6. Выделяем память под изображение с помощью GetMem(bitmap,size)
  7. Читаем файл в выделенную память с помощью BlockRead(f,bitmap^,size)
  8. Закрываем файл с помощью Close(f)
  9. Выводим изображение на экран с помощью PutImage(0,0,bitmap^,NormalPut)
  10. Освобождаем память с помощью FreeMem(bitmap)
  11. Если что-то пошло не так (IOResult <> 0), то выходим из процедуры с помощью Exit.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы