}
//««««««««« 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:

⇐ Предыдущая| |Следующая ⇒