Реферат: Просмотрщик графических файлов. Форматы PCX и BMP
counter, length; // for RLE (счетчик, длина)
unsigned int x, y; // координатыпиксела
dataFile = fopen (name, "rb"); // открытиекартинки
if (dataFile == NULL) return 4; // ошибкаоткрытия
read_pcx_header (dataFile, pcxHeader); // тестированиенаошибки
if (pcxHeader.bitsPerPixel != 8) // не поддерживается (8 бит -256 цветов)
{ fclose (dataFile); return 1; }
else
cout << "Этот формат PCX не поддерживается" << endl;
if (pcxHeader.nColorPlanes != 1)// не поддерживается (число цветовых слоев - 1)
{ fclose (dataFile); return 2; }
else
cout << "Этот формат PCX не поддерживается" << endl;
if (pcxHeader.manufacturer != 10) // ошибка pcx (10 для Paintbrush)
{ fclose (dataFile); return 3; }
else
cout << "Ошибкав PCX" << endl;
fseek (dataFile, -768, SEEK_END); // начало чтения картинки
set_mode(); // установка графического режима
for (x=0; x<256; x++) // чтение палитры
{
r = fgetc (dataFile); r = r>>2;
g = fgetc (dataFile); g = g>>2;
b = fgetc (dataFile); b = b>>2;
set_palette (x, r, g, b);
}
// начало вывода
x=0; y=0; // верхная левая координата
fseek (dataFile, 128, SEEK_SET); // перемещение указателя