형들아 내가 24비트 BMP 사진을 8비트 사진으로 줄여서 VISUALC++에서 텍스트모드로 구현을 해서 구현된 사진을 페인트샾을 통해서 확인 하는 프로그램을 C언어로 짜고 있는데 파일을 열고 파일헤드 및 영상헤드 를 읽었어 그리고 PALETTE생성해서 24비트를 8비트로 줄여야 되는데 어떻게 PALETTE생성 해야 될지 모르겠어. ㅠㅠ 여기저기 알아 보고 있는데 답을 주는데가 없어서 혹시나 하는 맘에 물어 봐 ㅠ 밑에는 내가 여태까지 짠 소스고 여기서 어떻게 팔레트를 생성 해야될지 좀 알려줘...ㅠ

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>

#define BYTE unsigned char
#define WIDTHBYTES(bits) ((bits)+31/32*4)


void main()
{
 FILE *infile;
 infile = fopen("ci24", "rb");
 if (infile == NULL){ printf("파일이 없습니다.\n"); return; };

 BITMAPFILEHEADER hf;
 fread(&hf, sizeof(BITMAPCOREHEADER), 1, infile);
 if (hf.bfType != 0x4D42) exit(1);

 BITMAPINFOHEADER hInfo;
 fread(&hInfo, sizeof(BITMAPINFOHEADER), 1, infile);

 if (hInfo.biBitCount < 8){ printf("좋지 못한 파일 형식!!"); return; }

 BYTE *lpImg = new BYTE[hInfo.biSizeImage];
 fread(lpImg, sizeof(char), hInfo.biSizeImage, infile);
 fclose(infile);

 int rwsize = WIDTHBYTES(hInfo.biBitCount*hInfo.biWidth);
 int rwsize2 = WIDTHBYTES(8 * hInfo.biWidth);
 BYTE *lpOutImg = new BYTE[3 * rwsize2*hInfo.biHeight];

 RGBQUAD *pRGB = NULL;
 if (hInfo.biClrUsed != 0)
 {
  pRGB = new RGBQUAD[hInfo.biClrUsed];
  fread(pRGB, sizeof(RGBQUAD), hInfo.biClrUsed, infile);
 }

}