}
//««««««««« RGBPixmap:: readBmpFile»»»»»»>
int RGBpixmap:: readBMPFileCstring fname)
{
// Read into memory an mRGB image
// from an uncompressed BMP file.
// читаем в память mRGB изображение
// из неупакованного BMP-файла
// return 0 on failure, 1 on success
// возвращаем 0 при ошибке. 1 при успехе
inf.open(fname.c_str(). ios::in|ios::binary): // read binary char's // читаем двоичные символы
if(!inf){ cout «" can't open file: " « fname « endl: return 0:}
int k. row. col. numPadBytes. nBytesInRow: // read the file header information // читаем информацию заголовочного файла
char chl. ch2:
inf.get(chl): 1nf.get(ch2); // type: always 'BM' // тип: всегда 'BM'
ulong fileSize - getLongO:
ushort reservedl - getShortO: // always 0 // всегда 0
ushort reserved2- getShortO: // always 0 // всегда 0
В2. RGBPixmap CLASS
ulong off Bits - getLongO: // offset to image - unreliable // смещение изображения - ненадежно
ulong headerSize - getLongO; // always 40 // всегда 40
ulong numCols - getLongO; // number of columns in image // число столбцов в изображении
ulong numRows - getLongO; // number of rows in image // число строк в изображении
ushort planes - getShortO: // always 1 // всегда 1
ushort bitsPerPixel-getShortO: // В or 24: allow only 24 here // 8 или 24; здесь разрешается только 24
ulong compression - getLongO: // must be 0 for uncompressed // должно быть 0 для несжатых
ulong imageSize - getLongO: // total bytes in image // всего байт в изображении
ulong xPels - getLongO: // always 0 // всегда 0
ulong yPels - getLongO; // always 0 // всегда 0
ulong numLUTentries -getLongO: // 256 for В bit. otherwise 0 // 256 для В бит. в противном случае 0
ulong impColors - getLongO; // always 0 // всегда 0
ifCbitsPerPixel !- 24)
// error - must be a 24-bit uncompressed image
// ошибка - должно быть 24-битовое несжатое изображение
cout « "not a 24-bit pixel image, or is compressed!\n"; inf.closeO: return 0: