¼Ò¿£ 2¿ù18ÀÏ 6:25:21
BITMAPINFOHEADER ±¸Á¶Ã¼ÀÇ biBitCount ¸â¹ö´Â Çȼ¿ Çϳª´ç ÇÒ´çµÈ ºñÆ®¼öÀ̸é ÀÌ °ª¿¡ µû¶ó »ö»ó¼ö°¡ °áÁ¤µË´Ï´Ù. 1À̸é Èæ¹éÀ̰í 4À̸é 2ÀÇ 4½Â°³ÀÎ 16»ö»óÀ» Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. biBitCount°¡ 8ÀÌ¸é ÆÈ·¹Æ®¸¦ »ç¿ëÇÏ´Â 256»ö»óÀ̸ç 16À̸é RGB555 ¹æ½ÄÀÇ 15ºñÆ® »ö»óÀÌµÇ BMP ÆÄÀÏÀº ÀÌ Æ÷¸ËÀ¸·Î µÇ¾î ÀÖ´Â ¿¹°¡ °ÅÀÇ ¾ø½À´Ï´Ù. ¿äÁòÀº ÀÌ·± ºñÆ®¸ÊÀÌ µå¹°°í º¸ÅëÀº 24ºñÆ®³ª 32ºñÆ®ÀÇ Æ®·çÄ÷¯·Î µÇ¾î ÀÖ½À´Ï´Ù. ºñÆ®¸ÊÀ» Àд´ٴ °ÍÀº °á±¹ ȸ鿡 Ãâ·ÂÇϱâ À§ÇؼÀε¥ À̶§´Â ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
int SetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits, CONST BITMAPINFO *lpbmi, UINT fuColorUse);
ÀÌ ÇÔ¼öÀÇ Á¦ÀÏ ¸¶Áö¸· Àμö fuColorUse´Â ºñÆ®¸Ê ·¡½ºÅÍ µ¥ÀÌÅͰ¡ ÆÈ·¹Æ®ÀÏ ¶§ DIB_PAL_COLORS·Î ÁöÁ¤ÇÏ°í »ö»ó°ªÀÏ ¶§ DIB_RGB_COLORS¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ³ª¸ÓÁö Æ÷¸Ë ºÐ¼®Àº ÀÌ ÇÔ¼ö ³»ºÎ¿¡¼ »ö»ó¼ö¸¦ Á¶»çÇÏ¿© ÀÚµ¿À¸·Î °áÁ¤ÇÕ´Ï´Ù. DIB¸¦ DDB·Î º¯È¯ÇÒ ¶§´Â ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
HBITMAP CreateDIBitmap( HDC hdc, CONST BITMAPINFOHEADER *lpbmih, DWORD fdwInit, CONST VOID *lpbInit, CONST BITMAPINFO *lpbmi, UINT fuUsage );
ºñÆ®¸Ê °ü·Ã ±¸Á¶Ã¼¿Í ·¡½ºÅÍ Á¤º¸°¡ Àü´ÞµÇ¸ç ¸¶Áö¸· Àμö fuUsage·Î ÀÌ ºñÆ®¸ÊÀÇ »ö»ó Æ÷¸ËÀ» ¾Ë·Á ÁÝ´Ï´Ù. ´ë°³ÀÇ °æ¿ì DIB_RGB_COLORS·Î Àü´ÞÇÏ¸é µË´Ï´Ù. ÀÌ·¸°Ô ¸¸µç ºñÆ®¸ÊÀ» BitBlt·Î Ãâ·ÂÇÕ´Ï´Ù. ÀÌ·± Æ÷¸Ë º¯È¯À» ½Å°æ¾²°í ½ÍÁö ¾Ê´Ù¸é ºñÆ®¸ÊÀ» ¸®¼Ò½º·Î Æ÷ÇÔ½Ã۰í LoadBitmapÀ¸·Î Àоî BitBlt·Î Ãâ·ÂÇÏ¸é µÇ°í¿ä. |
µ¿·¡°¨ÀÚ 2¿ù18ÀÏ 10:19:18
´äº¯°¨»çµå¸³´Ï´Ù
SetDIBitsToDevice ÇÔ¼ö´Â À©µµ¿ì APIÀÎ°Í °°´õ¶ó±¸¿ä
ÇöÀç ¸®´ª½º ±â¹ÝÀ¸·Î °³¹ß ÁßÀÔ´Ï´Ù.
¼Ò½ºÄڵ带 ¿Ã¸®ÀÚ¸é
FILE* fp;
fp = fopen(filename,"rb");
if(fp == NULL)
{
DP_ERR("File Open Error\n");
fclose(fp);
}
fread(&hf, sizeof(BitmapFileHeader), 1, fp);
fread(&ih, sizeof(BitmapInfoHeader), 1, fp);
long int width = ih.width;
long int height = ih.height;
int size = ih.sizeimage;
unsigned short* image;
image = (unsigned short*)malloc(size);
fseek(fp, hf.offbits, SEEK_SET);
fread(image, size, 1, fp);
image¶ó´Â º¯¼ö¿¡ FILE·Î ¿ÀÇÂÇÏ¿© offbits±îÁö seek¸¦ ÇÑ »óȲÀÔ´Ï´Ù. imageÀÇ ÇöÀçÁÖ¼Ò´Â ºñÆ®¸Ê À̹ÌÁö¿¡ °üÇÑ Á¤º¸°¡ ½ÃÀ۵Ǵ ÁÖ¼Ò·Î ¾Ë°íÀÖ½À´Ï´Ù.
¿©±â±îÁö Á¤º¸·Î´Â ÀÌ ÆÄÀÏÀÌ RGB555 ÀÎÁö ARGB8888 ÀÎÁö µîµî.. ¾Ë¼ö¾øÀ»±î¿ä? »ç¿ëµÇ´Â ºñÆ®¸Ê ÆÄÀÏÀº 16, 24 bitcoutµî ´Ù¾çÇÏ°Ô ÀÖ½À´Ï´Ù. |