|
|||||
- File #1 : Image2001.jpg(), Download : 36 |
¿À´ÃÀº ÆÄÀÏ¿¡¼ bmp ÆÄÀÏÀ» Àд ¹æ¹ý¿¡ ´ëÇØ ´Ù·ç¾î º¾´Ï´Ù. C ¾ð¾î¿¡¼ bmp ÆÄÀÏÀ» Àд °ÍÀº bmp ÆÄÀÏÀ» ÇϳªÇϳª ¶â¾î¼ °¡Á®¿À´Â °Í°ú °°½À´Ï´Ù. º£ÀÌÁ÷¿¡ ºñÇØ ¹«Áö ¹«Áö ºÒÆíÇÏÁö¸¸ ÀÏ´Ü °¡Áö°í ¿À¸é Á¦ ¸¾´ë·Î ´Ù·ê ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ Àֱ⠶§¹®¿¡ °ÔÀÓ °³¹ßÀ̳ª ±âŸ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ÀÇ ÀÀ¿ë¿¡´Â ¿ÀÈ÷·Á À¯¸®ÇÏ´Ù°í »ý°¢µË´Ï´Ù. bmp ÆÄÀÏÀº ¾Æ·¡¿Í °°Àº ±¸Á¶¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ºñÆ®¸Ê ÆÄÀÏ Çì´õ(BITMAPFILEHEADER) ºñÆ®¸Ê Á¤º¸ Çì´õ(BITMAPINFOHEADER) Ä®¶ó Å×À̺í(256 Ä®¶ó ÀÌÇÏ À̹ÌÁöÀÎ °æ¿ì¿¡¸¸) À̹ÌÁö µ¥ÀÌÅÍ °£´ÜÈ÷ ¾ð±ÞÇÏ°í ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÏÁö´Â ¾Ê½À´Ï´Ù. ÇÊ¿äÇϽŠ°æ¿ì ´Ù¸¥ Ã¥À» Çѹø ã¾Æº¸¼¼¿ä.(Visual C++ ¹ÙÀÌºí¿¡µµ ÀÚ¼¼È÷ ³ª¿Í ÀÖÁö¸¸... Ã¥ µÎ²²°¡ ³Ê¹« ¹«¼·ÁÒ.) ºñÆ®¸Ê ÆÄÀÏÀ» Àд °ÍÀº µ¥½ºÅ©Å¾ PC ÀÇ API °³¹ß ȯ°æ°ú´Â Á¶±Ý Â÷À̸¦ º¸ÀÔ´Ï´Ù. µ¥Å¾ API ¿¡¼´Â LoadImage ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ Çѹø¿¡ bmp ÆÄÀÏÀ» Àоî ÁÙ ¼öµµ ÀÖ¾ú°í, SetDIBitsToDevice ÇÔ¼ö¸¦ »ç¿ëÇؼ º¯È¯ÇÒ ¼öµµ ÀÖ¾úÁö¸¸ WinCE API ´Â LoadImage¿¡¼ ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾ø°í, SetDIBitsToDevice ÇÔ¼ö¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ±×·¡¼ Á¶±Ý ´Ù¸¥ ¹æ¹ýÀ¸·Î Àоî ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¿©±â¼´Â 16ºñÆ® ÆÄÀÏ°ú 24ºñÆ® ÆÄÀÏÀÎ °æ¿ì¸¸ ´Ù·ì´Ï´Ù. ÆÄÀÏÀÌ 256»ö ÀÌÇÏÀÎ ºñÆ®¸ÊÀÎ °æ¿ì¿¡´Â ¿¡·¯¸¦ ³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿¡·¯µµ °Ë»çÇÏÁö ¾Ê½À´Ï´Ù. 1. Àü °Á¿¡¼ »ç¿ëÇÑ Orig.JPG ÆÄÀÏÀ» Æ÷Åä¼¥À» ÀÌ¿ëÇØ 24 ºñÆ® Bitmap À¸·Î ÀúÀåÇϽŠ´ÙÀ½(ÆÄÀϸíÀº Orig.bmp·Î ÇØ ÁÖ¼¼¿ä.) SD ¸Þ¸ð¸®¸¦ ÀåÂøÇϽŠºÐ²²¼´Â PDA ÀÇ Storage Card2 Æú´õ¿¡ ³Ö¾îÁÖ¼¼¿ä. CF Ä«µå´Â Storage Card Æú´õ°¡ µÇ³ª¿ä? My Documents Æú´õ¿¡ ³ÖÀ¸¼Åµµ µÇ°í... ´Ù¸¥ Æú´õ¿¡ ³ÖÀ¸½Å ºÐÀº ³ªÁß¿¡ °æ·Î¸íÀ» ¸ÂÃß¾î ÁÖ¼Å¾ß ÇÕ´Ï´Ù. Àú´Â Storage Card2 Æú´õ¿¡ ³Ö´Â °ÍÀ¸·Î ÇÏ°Ú½À´Ï´Ù. 2. »õ·Î¿î ÇÁ·ÎÁ§Æ® Exam19¸¦ ¸¸µì´Ï´Ù. ±×¸®°í Hello World¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀ» »èÁ¦ÇÕ´Ï´Ù. 3. Àü¿ª º¯¼ö ¼±¾ð ¿µ¿ª(ÀÌÁ¨ ¾îµòÁö ¾Æ½ÃÁÒ? ¸ð¸£½Ã¸é Àü °Á ÂüÁ¶)¿¡ ¾Æ·¡¿Í °°ÀÌ ±×¸²À» Àбâ À§ÇÑ º¯¼ö¸¦ Çϳª Ãß°¡ÇÕ´Ï´Ù. // Global Variables: HINSTANCE g_hInst; HWND g_hwndCB; ¢º HBITMAP g_hBmp = NULL; 4. ÇÔ¼öÀÇ ÇÁ·ÎÅä ŸÀÔ ¼±¾ð ¿µ¿ª¿¡ ¾Æ·¡¿Í °°ÀÌ ReadBitmap ÇÔ¼öÀÇ ÇÁ·ÎÅä ŸÀÔÀ» ¼±¾ðÇÕ´Ï´Ù. // Forward declarations of functions included in this code module: ...... HWND CreateRpCommandBar(HWND); ¢º HBITMAP ReadBitmap( char* sFName ); 5. ÇÁ·Î±×·¥ÀÇ Á¦ÀÏ ¾Æ·¡¿¡ ¾Æ·¡¿Í °°ÀÌ ReadBitmap ÇÔ¼ö¸¦ Ãß°¡ÇØ ÁÝ´Ï´Ù. ¾à°£ ±æÁÒ? ¢ºHBITMAP ReadBitmap( char* sFName ) ¢º{ ¢º FILE* fp; ¢º BITMAPFILEHEADER bf; ¢º BITMAPINFOHEADER bi; ¢º DWORD sz; ¢º char* pBuf; ¢º char* pBits; ¢º HBITMAP hBmp; ¢º HDC hdc; ¢º ¢º fp = fopen( sFName, rb ); ¢º if( fp == NULL ) return NULL; ¢º fseek( fp, 0, SEEK_END ); ¢º sz = ftell( fp ); ¢º fseek( fp, 0, SEEK_SET ); ¢º fread( &bf, sizeof(bf), 1, fp ); ¢º fread( &bi, sizeof(bi), 1, fp ); ¢º sz -= sizeof(bf) + sizeof(bi); ¢º pBuf = new char [ sz ]; ¢º fread( pBuf, sz, 1, fp ); ¢º fclose( fp ); ¢º ¢º hdc = GetDC(NULL); ¢º hBmp = CreateDIBSection( hdc, (LPBITMAPINFO)&bi, DIB_RGB_COLORS, ¢º (void**)&pBits, NULL, 0 ); ¢º if( pBits != NULL ) ¢º memcpy( pBits, pBuf, sz ); ¢º ReleaseDC( NULL, hdc ); ¢º delete [] pBuf; ¢º return hBmp; ¢º} ÀÌ ÇÔ¼ö´Â ÆÄÀϸíÀ» ¹Þ¾Æ¼ ºñÆ®¸ÊÀ» Àд ÇÔ¼öÀÔ´Ï´Ù. Àμö sFName Àº °æ·Î°¡ Æ÷ÇÔµÈ ÆÄÀϸíÀÔ´Ï´Ù. ³»¿ëÀÌ ¸¹ÀÌ ¾î·Á¿ì¹Ç·Î Ãʺ¸ÀÚ ºÐµéÀº º¹»çÇÏ¿© »ç¿ëÇÏ½Ã°í ¼³¸íÀº °Ç³Ê ¶Ù½Ã±â ¹Ù¶ø´Ï´Ù. ÇÏÁö¸¸ ³ªÁß¿¡ °ÔÀÓ ¸¸µé°Å³ª ±×¸²À» ÀÌ¿ëÇÑ ÇÁ·Î±×·¥À» ¸¸µé ¶§´Â Ç×»ó ÀÌ¿ëÇÏ´Â ÇÔ¼ö°¡ µÉ °ÍÀÔ´Ï´Ù. FILE* fp; BITMAPFILEHEADER bf; BITMAPINFOHEADER bi; DWORD sz; char* pBuf; char* pBits; HBITMAP hBmp; HDC hdc; ÀÌ ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÇ´Â Áö¿ª º¯¼ö µéÀÔ´Ï´Ù. BITMAPFILEHEADER ¿Í BITMAPINFOHEADER Çü º¯¼ö´Â ºñÆ®¸Ê ÆÄÀÏÀÇ Ã³À½ ºÎºÐÀÇ Á¤º¸¸¦ Àбâ À§ÇÑ °ÍÀÔ´Ï´Ù. º¯¼ö sz ´Â óÀ½¿¡´Â ÆÄÀÏ Å©±â, ³ªÁß¿¡´Â ºñÆ®¸Ê µ¥ÀÌÅÍÀÇ Å©±â¸¦ °è»êÇÕ´Ï´Ù. pBuf ´Â ÆÄÀÏ¿¡¼ ÀÐÀº ºñÆ®¸Ê µ¥ÀÌÅ͸¦ ÀúÀåÇÒ º¯¼öÀÌ°í, pBits ´Â ºñÆ®¸Ê À̹ÌÁö¸¦ ¸¸µé º¯¼öÀÔ´Ï´Ù. hBmp ´Â »ý¼ºµÈ ºñÆ®¸ÊÀ» °¡¸®Å°´Â º¯¼ö°¡ µË´Ï´Ù. hdc ´Â ºñÆ®¸ÊÀ» ¸¸µé¶§ »ç¿ëÇÏ´Â Àӽà DCÀÔ´Ï´Ù. fp = fopen( sFName, rb ); if( fp == NULL ) return NULL; ÆÄÀÏÀ» ¿¬ ´ÙÀ½ ÆÄÀÏÀÌ ¿¸®Áö ¾ÊÀ¸¸é NULLÀ» µ¹·ÁÁÖ°í ÇÔ¼ö¸¦ Á¾·áÇÕ´Ï´Ù. fseek( fp, 0, SEEK_END ); sz = ftell( fp ); fseek( fp, 0, SEEK_SET ); ÆÄÀÏÀÇ Å©±â¸¦ °è»êÇÕ´Ï´Ù. ÆÄÀÏÀÇ Á¦ÀÏ ³¡À¸·Î °¡¼ ±× À§Ä¡¸¦ °¡Á®¿À°í ´Ù½Ã Á¦ÀÏ Ã³À½À¸·Î µ¹¾Æ°©´Ï´Ù. fread( &bf, sizeof(bf), 1, fp ); fread( &bi, sizeof(bi), 1, fp ); ÆÄÀÏ Çì´õ¿Í Á¤º¸ Çì´õ¸¦ ÀнÀ´Ï´Ù. sz -= sizeof(bf) + sizeof(bi); pBuf = new char [ sz ]; fread( pBuf, sz, 1, fp ); ÆÄÀÏ Çì´õ¿Í Á¤º¸ Çì´õ¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö°¡ ºñÆ®¸Ê µ¥ÀÌÅÍÀÔ´Ï´Ù. ±× Å©±â¸¦ °è»êÇÑ ´ÙÀ½ ÇÊ¿äÇÑ ¸Þ¸ð¸®¸¦ ¼±¾ðÇÏ°í ºñÆ®¸Ê µ¥ÀÌÅ͸¦ ÀнÀ´Ï´Ù. hdc = GetDC(NULL); ÀÓÀÇÀÇ DC¸¦ ¸¸µì´Ï´Ù. ÀÌ DC ´Â ȸé°ú ÀÏÄ¡ÇÏ´Â ÇüÅÂÀÇ DCÀÔ´Ï´Ù. ¿©±â¼´Â Àӽ÷Π»ç¿ëÇϱâ À§ÇØ ¾Æ¹«·¸°Ô³ª DC¸¦ ¸¸µç °ÍÀÔ´Ï´Ù. hBmp = CreateDIBSection( hdc, (LPBITMAPINFO)&bi, DIB_RGB_COLORS, (void**)&pBits, NULL, 0 ); ±×¸²À» ³ÖÀ» ºñÆ®¸ÊÀ» »ý¼ºÇÕ´Ï´Ù. À̶§ bi ´Â BITMAPINFOHEADER Çü º¯¼öÀÔ´Ï´Ù. ÇÊ¿äÇÑ Àμö´Â BITMAPINFO ÀÇ Æ÷ÀÎÅÍÇüÀε¥, BITMAPINFO ÇüÀº BITMAPINFOHEADER Çü º¯¼ö¿¡ »ö»ó Å×À̺íÀ» Ãß°¡ÇÑ °ÍÀÔ´Ï´Ù. ±×·±µ¥ 16ºñÆ® »ö»ó ºÎÅÍ´Â »ö»ó Å×À̺íÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¹Ç·Î BITMAPINFOHEADER ÇüÀ» BITMAPINFO ÇüÀ¸·Î ¹Ù²Ù¾î(ij½ºÆà ¿¬»ê) »ç¿ëÇصµ ¾Æ¹«·± ¹®Á¦°¡ ¾ø½À´Ï´Ù. ¸¸¾à 256»ö ÀÌÇÏÀÇ ºñÆ®¸ÊÀÌ¸é ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. À̶§ »ý¼ºµÇ´Â ºñÆ®¸ÊÀÇ ¸Þ¸ð¸® ¿µ¿ªÀÌ pBits º¯¼ö¿¡ µé¾î¿É´Ï´Ù. ¿ì¸®´Â pBits ¿¡ ºñÆ®¸Ê µ¥ÀÌÅ͸¦ º¹»çÇØ ³ÖÀ¸¸é µË´Ï´Ù. if( pBits != NULL ) memcpy( pBits, pBuf, sz ); ¸¸¾à º¯¼ö pBits °¡ ¸Þ¸ð¸® ¿µ¿ªÀ» °¡¸®Å°°í ÀÖÀ» ¶§´Â ÀÐÀº ºñÆ®¸Ê µ¥ÀÌÅ͸¦ pBits °¡ °¡¸®Å°´Â ¿µ¿ª¿¡ ±×µð·Î º¹»çÇØ ³Ö½À´Ï´Ù. ReleaseDC( NULL, hdc ); delete [] pBuf; return hBmp; DC ¿Í ¸Þ¸ð¸®¸¦ Á¤¸®ÇÏ°í »ý¼ºµÈ ºñÆ®¸ÊÀ» È£Ãâ ÇÔ¼ö¿¡°Ô µ¹·ÁÁÖ°í ÇÔ¼ö¸¦ ³¡³À´Ï´Ù. 6. WndProc ÀÇ WM_CREATE ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ ºñÆ®¸ÊÀ» Àд ÇÔ¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù. ¸¸¾à ´Ù¸¥ Æú´õ¿¡ ³ÖÀ¸½Å ºÐÀº Æú´õ À̸§À» ¹Ù²Ù¾î ÁֽʽÿÀ. case WM_CREATE: ...... ¢º g_hBmp = ReadBitmap( Storage Card2Orig.bmp ); break; 7. WndProc ÀÇ WM_DESTROY ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ ºñÆ®¸ÊÀ» Á¤¸®ÇÏ´Â ºÎºÐÀ» Ãß°¡ÇÕ´Ï´Ù. case WM_DESTROY: ¢º if( g_hBmp != NULL ) DeleteObject( g_hBmp ); ...... 8. WndProc ÀÇ WM_PAINT ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ ºñÆ®¸ÊÀ» ȸ鿡 »Ñ·ÁÁÖ´Â ºÎºÐÀ» Ãß°¡ÇÕ´Ï´Ù. ÀÌ¿¡ °üÇÑ ¼³¸íÀº Àü °Á¸¦ ÂüÁ¶ ÇÕ´Ï´Ù. case WM_PAINT: hdc = BeginPaint(hWnd, &ps); ¢º if( g_hBmp != NULL ) ¢º { ¢º hdcMem = CreateCompatibleDC( hdc ); ¢º SelectObject( hdcMem, g_hBmp ); ¢º BitBlt( hdc, 0, 0, 240, 270, hdcMem, 0, 0, SRCCOPY ); ¢º DeleteDC( hdcMem ); ¢º } EndPaint(hWnd, &ps); break; 9. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸½Ê½Ã¿À. ¿ÜºÎ ºñÆ®¸Ê ÆÄÀÏÀ» Àд ºÎºÐÀº ³ªÁß¿¡ °ÔÀÓÀ» ¸¸µé°Å³ª ÇÒ ¶§ ÀÀ¿ëÇÒ °ÍÀÔ´Ï´Ù. ÀÌÇØ°¡ ¾ÈµÇ½Ã¸é Àд ÇÔ¼ö¸¦ º¹»çÇØ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. °á°ú°¡ Àü °ÁÂÇÏ°í ¶È°°ÁÒ? ´Ù¸¥ À̹ÌÁö¸¦ ¾µ±î ÇÏ´Ù°¡ ±ÍÂú¾Æ¼... |
| ||
| ||
|
|