Графический интерфейс GDI в Microsoft Windows


             

в формате Presentation Manager lpch


else if(biSize == sizeof(BITMAPCOREHEADER)) // 12 байт { // Это заголовок DIB в формате Presentation Manager lpch = (LPBITMAPCOREHEADER)(hDIBPtr + sizeof(BITMAPFILEHEADER));

// Проверяем основные поля заголовка DIB if((lpch->bcPlanes == 1) && (lpch->bcBitCount == 1 lpch->bcBitCount == 4 lpch->bcBitCount == 8 lpch->bcBitCount == 24)) { nDIBType = PM_DIB; } else nDIBType = 0; }

else nDIBType = 0;

GlobalUnlock(hDib);

// Возвращаем тип файла или признак ошибки return nDIBType; }

// ------------------------------- // Функция DIBNumColors // Определение размера палитры // -------------------------------

WORD DIBNumColors(LPDIB lpDib) { DWORD dwColorUsed; LPBITMAPINFOHEADER lpih;

lpih = (LPBITMAPINFOHEADER)(lpDib + sizeof(BITMAPFILEHEADER));

// Количество цветов dwColorUsed = lpih->biClrUsed;

// Если используется палитра уменьшенного размера, // возвращаем нужный размер if(dwColorUsed) return((WORD)dwColorUsed);

// Если количество использованных цветов не указано, // вычисляем стандартный размер палитры исходя из // количества бит, определяющих цвет пиксела switch(lpih->biBitCount) { case 1: return 2; case 4: return 16; case 8: return 256; default: return 0; // палитра не используется } }

// ------------------------------- // Функция DIBHeight // Определение высоты DIB в пикселах // -------------------------------

WORD DIBHeight(LPDIB lpDib) { LPBITMAPINFOHEADER lpih;

lpih = (LPBITMAPINFOHEADER)(lpDib + sizeof(BITMAPFILEHEADER)); return lpih->biHeight; }

// ------------------------------- // Функция DIBWidth // Определение ширины DIB в пикселах // -------------------------------

WORD DIBWidth(LPDIB lpDib) { LPBITMAPINFOHEADER lpih;

lpih = (LPBITMAPINFOHEADER)(lpDib + sizeof(BITMAPFILEHEADER)); return lpih->biWidth; }

// ------------------------------- // Функция DIBFindBits // Определение адреса массива бит изображения // -------------------------------

LPSTR DIBFindBits(LPDIB lpDib) { LPBITMAPFILEHEADER lpfh; LPBITMAPINFOHEADER lpih;


Содержание  Назад  Вперед