Основные понятия. Формат файлов для хранения растровых изображений

   
На этом шаге мы рассмотрим структуру файла BMP.

   
К настоящему времени известно много форматов файлов для растровых изображений. Здесь мы рассмотрим один из самых популярных форматов, который
обязан своей распространенностью операционной системе Windows - формат BMP.

   
Общая структура BMP-файла такова:


Рис.1. Общая структура BMP-файла

   
Заголовок файла BMP называется BITMAPFILEHEADER. В нем помещается общее описание файла. Заголовок имеет следующие поля:

  • WORD bfType - хранит символы "ВМ". Это код формата.
  • DWORD bfSize - общий размер файла в байтах.
  • WORD bfReservedl - зарезервировано, пока что равно 0.
  • WORD bfReserved2 - зарезервировано, пока что равно 0.
  • DWORD bfOffBits - адрес битового массива в данном файле.

   
Далее в файле следует еще один заголовок - BITMAPINFOHEADER, в котором хранится описание размеров растра и цветового формата пикселей. Здесь имеются такие поля:

  • DWORD biSize - размер заголовка, равен 40.
  • LONG biWidth - ширина растра в пикселях.
  • LONG biHeight - высота растра в пикселях.
  • WORD biPlanes - должно быть равно 1.
  • WORD biBitCount - бит на пиксель, может быть 1, 4, 8, 16, 24 или 32.
  • DWORD biCompression - равно нулю.
  • DWORD biSizeImage - размер в байтах битового массива растра.
  • LONG biXPelsPerMeter - разрешение по X в пикселях на метр.
  • LONG biYPelsPerMeter - разрешение по Y в пикселях на метр.
  • DWORD biClrUsed - если равно 0, то используется максимальное число цветов.
  • DWORD biClrImportant - равно 0, если biClrUsed = 0.

   
Затем в файле помещается палитра в виде записей RGBQUAD. Каждая запись содержит четыре поля.

  • BYTE rgbBlue - цветовая компонента В, от 0 до 255.
  • BYTE rgbGreen - компонента G.
  • BYTE rgbRed - компонента R.
  • BYTE rgbReserved - не используется, равно 0.

   
Количество записей RGBQUAD равно количеству используемых цветов. Палитра отсутствует, если число бит на пиксел равно 24. Также
палитра не нужна и для некоторых цветовых форматов 16 и 32 бит на пиксель.

   
Здесь приняты такие обозначения для типов полей:

  • BYTE - однобайтовое целое число без знака.
  • WORD - двухбайтовое целое число без знака.
  • DWORD - четырехбайтовое целое число без знака.
  • LONG - четырехбайтовое целое число со знаком.

   
После палитры (если она есть) в файле BMP записывается растр в виде битового (а точнее, байтового массива). В битовом массиве последовательно
записываются байты строк растра. Количество байт в строке должно быть кратно четырем, поэтому если количество пикселей по горизонтали не
соответствует такому условию, то справа в каждую строку дописывается некоторое число битов (выравнивание строк на границу двойного слова).

   
Сжатие изображений в файлах BMP отсутствует, однако подобный формат (Device Independent Bitmap) описания растровых
изображений также используется и для файлов типа DIB, где применяются простейшие алгоритмы сжатия RLE (Run Length Encoding).
Алгоритмы RLE также используются и в других растровых графических форматах, например PCX.

   
Описание других графических форматов можно найти в сети Internet.

   
Со следующего шага мы начнем рассматривать координатный метод.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий