Computer/Image Processing

24비트나 32비트가 아닌 BMP 파일은 팔레트를 설정해줘야 그림이 제대로 뜬다.

안그럼 온통 검은 화면만 볼 수 있다.

 

// 파일을 연다.

m_Image.Load("lenna256.bmp");

// 동일한 속성의 이미지를 생성한다.

m_NewImage.Create(m_Image.GetWidth(), m_Image.GetHeight(), m_Image.GetBPP());

// 24 or 32 BPP 가 아닐경우 팔레트를 설정한다.

RGBQUAD ColorTable[256];

for(int i = 0; i < 256; i++)

{

ColorTable[i].rgbRed = i;

ColorTable[i].rgbGreen = i;

ColorTable[i].rgbBlue = i;

}

m_NewImage.SetColorTable(0, 255, ColorTable);

for(int i = 0; i < m_Image.GetHeight(); i++)

{

for(int j = 0; j < m_Image.GetWidth(); j++)

{

m_NewImage.SetPixel(j, i, m_Image.GetPixel(j, i));

}

}

UpdateAllViews(NULL);

pDoc->m_NewImage.Draw(pDC->GetSafeHdc(), 0, 0, pDoc->m_NewImage.GetWidth(), pDoc->m_NewImage.GetHeight());

 

출처 : http://sarojaba.tistory.com/67

+ Recent posts