http://blog.naver.com/fantajeon/80027908479
HBITMAP CreateBitmap(IplImage *pImage, int nSize)
{
// 현재 응용프로그램의 스크린과 호환되는 memory dc를 생성한다.
HDC hDC = ::CreateCompatibleDC(0);
BYTE tmp[sizeof(BITMAPINFO)+255*sizeof(RGBQUAD)];
BITMAPINFO *bmi = (BITMAPINFO*)tmp;
HBITMAP hBmp;
int i;
int w = pImage->width, h = pImage->height;
int bpp = pImage->nChannels*8;
memset(bmi,0,sizeof(BITMAPINFO));
bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi->bmiHeader.biWidth = w;
bmi->bmiHeader.biHeight = h;
bmi->bmiHeader.biPlanes = nSize;
bmi->bmiHeader.biBitCount = bpp;
bmi->bmiHeader.biCompression = BI_RGB;
bmi->bmiHeader.biSizeImage = w*h*1;
bmi->bmiHeader.biClrImportant =0 ;
switch(bpp)
{
case 8 :
for(i=0 ; i < 256 ; i++)
{
bmi->bmiColors[i].rgbBlue = i;
bmi->bmiColors[i].rgbGreen= i;
bmi->bmiColors[i].rgbRed= i;
}
break;
case 32:
case 24:
((DWORD*) bmi->bmiColors)[0] = 0x00FF0000; /* red mask */
((DWORD*) bmi->bmiColors)[1] = 0x0000FF00; /* green mask */
((DWORD*) bmi->bmiColors)[2] = 0x000000FF; /* blue mask */
break;
}
hBmp = ::CreateDIBSection(hDC,bmi,DIB_RGB_COLORS,NULL,0,0);
::SetBitmapBits(hBmp, pImage->imageSize, pImage->imageData);
::DeleteDC(hDC);
return hBmp;
}
'IT 개발, develop > Image processing' 카테고리의 다른 글
The Rete Matching Algorithm (0) | 2015.09.16 |
---|---|
A* 알고리즘 (0) | 2015.09.16 |
real time rendering 2판 (2) | 2015.09.16 |
색체심리학 개요 (0) | 2015.09.16 |
색관련사이트 (0) | 2015.09.16 |
댓글