Image Processing Program
´Ù¸¥ DIB Ŭ·¡½º¸¦ °¡Áö°í ȸé Ãâ·Â
°ÅÀÇ ºñ½ÁÇÏÁö¸¸ ³»¿ëÀÌ Á¶±Ý ¹Ù²ï ´Ù¸¥ DIB Ŭ·¡½º¸¦ °¡Áö°í ȸ鿡 Ãâ·ÂÀ» ÇØ º¾½Ã´Ù.
¾Õ¿¡¼ ¾²ÀΠŬ·¡½º´Â http://www.codeguru.com¿¡¼ °¡Áö°í ¿Â °ÍÀ̰í, Áö±ÝºÎÅÍ ¾µ Ŭ·¡½º´Â ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î 97³â 12¿ù~98³â 7¿ù »çÀÌÀÇ ³»¿ë¿¡ ³ª¿À´Â °Ì´Ï´Ù. ¿ø·¡´Â ÀÚüÀûÀ¸·Î MFC¿Í ºñ½ÁÇÏÁö¸¸ ÈξÀ ÀÛÀº MAF¶ó´Â ¼ÒÇÁÆ®¿þ¾î Ç÷§ÆûÀÇ ÀϺÎÀε¥, À̹ÌÁö 󸮺κи¸ µû·Î MFC¿¡¼ ¾µ ¼ö ÀÖµµ·Ï ºÎºÐÀûÀ¸·Î ¼öÁ¤ÇÑ °Ì´Ï´Ù. ¹¹ ±×·¡µµ °°Àº ±â´ÉÀÌ´Ï±î ºñ½ÁÇÑ ÆíÀÌÁÒ. ¼·Î ºñ±³ÇØ º¸¸é¼ ¾îµð°¡ ¹Ù²î¾ú´ÂÁö È®ÀÎÇØ º¸´Â °Íµµ ±¦ÂúÀ» °Ì´Ï´Ù.
¾Õ¿¡¼ ¼³¸íÀ» ÇßÀ¸´Ï ÀÌÁ¦ °£·«È÷ ¼³¸íÇÕ´Ï´Ù. ¿¹Á¦ ÇÁ·ÎÁ§Æ®ÀÔ´Ï´Ù.
1. MDI, CScrollView
2. IPF.h, TAlloc.h,
TBitmap.h/cpp, TDIBitmap.h/cpp, TPalette.h/cpp, TPixmap.h/cpp
ÇÁ·ÎÁ§Æ®¿¡
Ãß°¡
3. µµÅ¥¸ÕÆ® Ŭ·¡½º Çì´õ¿¡ ´ÙÀ½ µÎ ÆÄÀÏ ÀÎŬ·çµå
#include "TDIBitmap.h"
#include "TPixmap.h"
4. µµÅ¥¸ÕÆ® Ŭ·¡½º¿¡ ¸â¹öº¯¼ö Ãß°¡
protected:
CPixmap
m_pixmap;
CDIBitmap
m_dib;
5. ¾ÖÇø®ÄÉÀÌ¼Ç Å¬·¡½º¿¡ OnFileOpen ÇÔ¼ö ¿À¹ö¶óÀ̵ù
void CImgPro3App::OnFileOpen()
{
// TODO: Add your command handler
code here
char szFilter[] = "Image Files(*.BMP, *.IPF)|*.BMP;
*.IPF|All Files(*.*)|*.*||";
CFileDialog fileDlg(TRUE, NULL,
NULL, OFN_HIDEREADONLY, szFilter);
if(IDOK == fileDlg.DoModal())
OpenDocumentFile(fileDlg.GetPathName());
}
6. µµÅ¥¸ÕÆ® Ŭ·¡½º¿¡¼ OnOpenDocument¸¦ ¿À¹ö¶óÀ̵ù
BOOL CImgPro3Doc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return
FALSE;
// TODO: Add your specialized
creation code here
BOOL bLoad = m_dib.Open(lpszPathName);
// if(bLoad)
// bLoad
= m_pixmap.CreateFromDIBitmap(m_dib);
return bLoad;
//return TRUE;
}
7. ºäÀÇ OnDraw ¸¦ ´ÙÀ½°ú °°ÀÌ °íħ,
ÀÏ´Ü Å×½ºÆ®¸¦ À§ÇØ µµÅ¥¸ÕÆ®ÀÇ m_dib, m_pixmap µÎ º¯¼ö¸¦ Àӽ÷ΠpublicÀ» °íħ(³ªÁß¿¡
´Ù½Ã ¿ø·¡´ë·Î protected·Î ¹Ù²Ü °Ì´Ï´Ù.)
void CImgPro3View::OnDraw(CDC* pDC)
{
CImgPro3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native
data here
pDoc->m_dib.Draw(pDC, 0,
0);
}
8. ¿©±â¼ ÄÄÆÄÀÏÀ» Çϰí BMP ÆÄÀÏÀ» Çϳª ºÒ·¯¿À¸é µË´Ï´Ù. ±×¸² Àß ³ª¿ÀÁÒ..