ì œ7장+디지털+이ë¯&

ì œ7장+디지털+이ë¯&

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Digital Media 2005 제 7제 제제제 제제제 제제제제제 제제제 제제제 제제제 제제제제제 제제 이이이 이이이이 이이 이이 gD i [ 제제 7 . 1- 5] 제제제 제제제제 제제 제제 제제제 제제제 제제제제제 제제 이이이이 이이이이 이이이이이 이이 이이 • J PEG, BM GI F … P, … 이 이이이이이 이이이 이이이이 이이 gD i • BM 이 이이이 이이 이이이 이이이이이 이이이이 DI B( De vi c e P I n de p e n de n t Bi t ma p ) 이이이이이 이이이 이이이이 이이이 이이 이이 제제제 제제제 제제제제제 제제 gD i 이이이 이이 이이 제제제 제제제 제제제제제 제제 W i ndows 이이 이이이이 이 이이 이이이 • DDB( De vi c e De p e n de n t Bi t ma p ) 이이 이이이 W n d o ws 이 이이이이 이이 이이이 이이이 De vi c e 이 이이 이이 이이 이이이 i • DI B( De vi c e I n de p e n de n t Bi t ma p ) gD i W n do ws 3. 0 이이이이이 DI B 이이 i De vi c e 이 이이이이이 이이이 이 이이 이이이 이이이이 이이이 이이이이이이 De vi c e 이 이이이 이이이 이이이 이이이이 이이이 이이이이 이이 이 이이 이 제제제 제제제 제제제제제 제제 DDB 이 DI B 이 이이이 이이이 • DDB 이이이이이 이이이 이이이이 이이이이 M mo r yDC 이 이이이 S e l e c t 이 이이 이 이이이이 이이이 e 이이이 이이이 이이이이 S e l e c t 이 이이 M mo r yDC 이 Bi t Bl t ( ) 이이 . e 이이 이이이 이이이이 이이이이 이이이이 이이이이이이 이이이이 이이이이 이이 이이이 이이이 - 이이이이 이이이 이이 이이이이 이 • DI B gD i DI B 이이이 S t r u c t u r e 이이 이이이 이이이 이이이 이이이이 이이이 이이이 이이 이이이이이 이이 이 이이 . 이이이이 BM 이 이이 이이이이이 BI TM P API NFO 이 이 이이 s t r u c t u r e 이 BI TM API NFOHEADER 이이 이이이 이이이이 이이이 이이이 이이 이 제제제 제제제 제제제제제 제제 이이이이 이이이이 ( DC) gD i • 이이이이 이이이이이 ( DC) 이이 이이이 이이이이 이이이이이이 Ge t DC 이이 API 이 이이 이이이 이이이 이이 이이 이이이 이이 이이이이 이이이이이 이이이 이이이이 API 이이 . • GDI 이 이이이이 이이이이 ( DC) 이 이이 이이이 이 이이이 이이 이이 이이이 이이이 이이 이이 이 이이 이이이이 . 제제제 제제제 제제제제제 제제 이이이 이이이이 이이이이 • 이이 이이 이이이 이이이이 이이이이이 이이이 이이이 이이 DC 이 이이이이 이이이 이이 이이이 . • 이이이 DC 이 이이이이 이이 이이이 이 DC 이 이이이 이 이이 – M mor y DC 이이이 이 e gD i HDC hDC, hM m e DC; HDC h DC = Ge t DC( hW ; / / hW 제 제제제제 제제제제 제제 DC 제 제제제 . nd) nd 제제제제 DC hM m e DC = Cr e a t e Com t i bl e s DC( hDC) / / 제제제 DC 제 제제제 . pa DC // / / 제제제 제제제 제제제제 . 제제제 // De l e t e DC( hM m e DC) ; / / 제제제 DC 제 제제제제 . DC Re l e a s e DC( hW nd, hDC) ; 제제제 제제제 제제제제제 제제 Bi t BI t • 이이이 DC 이이 이이 DC 이 이이이 이이이이 이이이이이 이이이 St r e t c hBI t gD i • 이이이 DC 이이 이이 DC 이 이이 이 이이이이 이이이이이 이이이 제제제 제제제 제제제제제 제제 gD i Bi t BI t Bi 제제제 제제제제 제제제 BOOL Bi t Bl t ( BOOL HDC hdc De s t , / / ha ndl e t o de s t i na t i on de vi c e c o nt e xt i nt nXDe s t , / / x- c oo r di na t e of de s t i na t i on r e c t a ng l e ' s uppe r - l e f t c or ne r i nt nYDe s t , / / y- c oo r di na t e of de s t i na t i on de r e c t a ng l e ' s uppe r - l e f t c or ne r i nt nW dt h, i / / wi dt h of de s t i na t i on r e c t a ng l e i nt nHe i g ht , / / he i g ht of de s t i na t i on r e c t a ng l e HDC hdc Sr c , / / ha ndl e t o s our c e de vi c e c ont e xt i nt nXSr c , / / x- c oor di na t e of s our c e r e c t a ng l e ' s uppe r - l e f t c or ne r i nt nYSr c , / / y- c oor di na t e of s our c e 제제제 제제제 제제제제제 제제 S e l e c t o bj e c t Se 제제 제제 • 이이이이 이이 이이 이이이 이이이 DC 이 이이이이 이이 gD i S e l e c t o bj e c t 제제제 제제 제 Se 제제제 HDC hDC, hM m e DC; HBI TM hBi t m p, hOl dBi t m p; AP a a / / 제제제제 제제제제 제제 제제제제 제. h Bi t m p = Loa dBi t M p( hl ns t , M a a AKEI NTRESOURCE ( I DB_ M TM YBI AP) ) ; / / I DB_ M TM 제 제제제 제제제 제제제 제제 YBI AP 제제제 h DC = Ge t DC( hW ; nd) hM m e DC = Cr e a t e Com t i bl e DC( hDC) ; / / 제제제 DC 제 제제 pa DC 제. / / 제제제 DC 제 제제제제 . DC hOl dBi t m p = Se l e c t Obj e c t ( hM m a e DC, hBi t m p) ; / / a h Ol 제제 제제 ........ / / 제제 제제제 제제제제 . Se l e c t Obj e c t ( hM m e DC, h0 l dBi t m p) ; / / 제제제 Bi t m p 제제 a Se 제제제 Bi a 제제 제제 제제제 제제제 제제제제제 제제 Ge t Obj e c t • gD i 제제제 DC 제 제제제제 제제 DC 제 제제제 제 제제제제제 제제제제 제제제 제제 제제 제제제제 제제 제제제 DC 제제제제 DC Ge t Obj e c t Ge 제제제 제제제 제제제 HDC hDC, hM m e DC; HDC HBI TM hBi t m AP ap, h0 l dBi t am p; BI TM bm AP ; / / 제제제제 제제제제 제제제 . 제제제제 h Bi t m ap = LoadBi t m ap( hl ns t , M AKEI NTRESOURCE( I DB_M TM YBI AP) ) ; h DC = Ge t DC( hW ; nd) hM m e DC = Cr e at e Com pat i bl e DC( hDC) ; / / 제제제 DC 제 제제제 . DC / / 제제제 DC 제 제제제 제제제제 . DC h 0l dBi t m ap = Se l e c t Obj e c t ( hM m e DC, hBi t m p) ; a / / 제제제제 제제제 제제제제 . 제제제제 Ge t Obj e c t ( hBi t m ap, & ) ; / / bm제 제제제제 제제 제제제 제제제제 . bm / / 제제제 DC 제 제제제 제제제제 제제 DC 제 제제제제 . DC 제제제 DC Bi t Bl t ( hDC, 10, 10, bm bm i dt h, bm bm i ght , hM m . W . He e DC, 0, 0, S RCCOPY) ; / / 제제 제제제 제제제제 . 제제 S e l e c t Obj e c t ( hM m e DC, hOl dBi t m ap) ; / / 제제제 DC 제 제제제제 제제제제제제 . DC De l e t e Obj e c t ( hBi t m ap) ; / / 제제제제 제제제제 . 제제제제 De l e t e DC ( hM m e DC) ; Re l e as e DC( hand, hDC) ; 제제제 제제제 제제제제제 제제 BM P 이이이 이이 gD i • 이이이이 이이이 이이이 이이이 이이이 이이이 이이이 제제제 제제제 제제제제제 제제 gD i BI TM BI APFI LEHEADER 제제제 제제제 t ype de f s t r uc t t agBI TM APFI LEHEADER { W ORD bf Type ; / / "BM " DW ORD bf Si z e ; / / 제제제제 제제 제제제제 W ORD bf Re s e r ve d1; / / 제제제제 제제 제제제제 W ORD bf Re s e r ve d2; / / 제제제제 제제 제제제제 DW ORD bf Of f Bi t s ; / / 제제제 제제제제 제제 제제 제제제 제제제 } BI TM APFI LEHEADE 제제제 제제제 제제제제제 제제 gD i BI TM NFOHEADER 제제제 BI API 제제제 t ype de f s t r uc t t a g BI TM NFOHEADER API { DW ORD bi Si z e ; / / 제 제제제제 제제 LONG bi W dt h; i / / 제제 제제 LONG bi He i g ht ; / / 제제 제제 W ORD bi Pl a ne s ; / / 제제제제 W ORD bi Bi t Count ; / / 제제제제제 DW ORD bi Com e s s i on; pr / / 제제 제제 DW ORD bi Si z e I m g e ; a / / 제제제 제제제 LONG bi XPe l s Pe r M t e r ; e / / 제제제 제제 제제 제제제 LONG bi YPe l s Pe r M t e r ; e / / 제제제 제제 제제 제제제 DW ORD bi Cl r Us e d; / / 제제 제제 제제 제제 DW ORD bi Cl r I m por t a nt ; / / 제제제제 제제제제 제 제제제제 } BI TM NFOHEADER; API 제제제 제제제 제제제제제 제제 BI TM BI API NFO 제제제 제제제 • BI TM NFOHEADER 제 제제제 제제제 제제제제 제제제 제제 RGBQUAD 제제 API 제제제 RGBQUAD 제제 제제제제 제제제 제제 . 제제제제 gD i t ype de f s t r uc t t agBI TM NFO API { BI TM NFOHEADER bm He ade r ; API i RGBQUAD bm Col or s [ 1] ; i / / 제제제 제제제 제제제 } BI TM NFO; API 제제제 제제제 제제제제제 제제 이이이 이이이 • 이이 이이 이이이 이이 이이이이이 이이이 y 이이 이이이 gD i • 이이이 이이이 t op , l e f t , b ot t om, r i gh t 이 이이이이 이 이이이 이이이 이이 이 이이 1 제제 – BMP 제제제 제제 제제 제제제 이이이이 이이 gD i •M FC Ap p W z a r d( e xe ) i 이이 1 제제 – BMP 제제제 제제 제제 제제제 M ul t i pl e doc ume nt s gD i • M t i p l e Doc ume n t 이 이이 ul gD i 1 제제 – BMP 제제제 제제 제제 제제제 1 제제 – BMP 제제제 제제 제제 제제제 이이이 이이 gD i • 제제제제 제제제 Bas e Cl as s 제 CVi e w 제 CSc r ol l Vi e w 제 제제제 제제제제 Bas CVi CSc 1 제제 – BMP 제제제 제제 제제 제제제 이이이 Cl a s s 이이 – CM yDI B Cl a s s gD i • I ns e r t M nu 제 Ne w Cl as s e 제제 제제 1 제제 – BMP 제제제 제제 제제 제제제 gD i CM B Cl as s 제 제제제제 yDI c l as s CM B yDI { p ubl i c : CM B( ) ; yDI / / 제제제 제제 v i r t ual ~CM B( ) ; yDI / / 제제제 제제 i nt Ge t Bi t Count ( ) ; / / 제제제제 제제 제제제 제제제 제제 v oi d LoadDI B( CSt r i ng s t r Pat h) ; / / s t r Pat h 제 제제제 제제 제제 v oi d Fr e e ( ) ; / / 제제제 제제제 제제 제제 BOOL I s Dat aNul l ( ) { / / Fi l e He ade r 제 제제 제제 제제제 제제 제제 r e t ur n ( m _pFH == NULL) ; } BOOL Dr aw( HDC hDC) ; / / 제제제 제제제 제제 제제 제제제 p r ot e c t e d: BI TM APFI LEHEADER *m _pFH; / / Fi l e He ade r 제제제제 제제제 제제 제제제제 BI TM NFOHEADER *m API _pI H; / / I nf oHe ade r 제제제제 제제제 제제 i nt m i dt h, m _W _He i ght ; / / Fi l e He ade r 제제제제 제제제 제제 제제제제 i nt m _nBi t Count ; / / 제제제 제제 제제제 제제 제제제 BYTE *m _pPi xe l ; / / 제제제제 제제 제제 제제제 제제 제제제제 }; - 제제 제제 제제 제제제 제 320 제제제 제제 3 20 1 제제 – BMP 제제제 제제 제제 제제제 CM B Cl as s 제 제제제제 제제 제제 yDI #i nc l ude "M B. h" yDI // 제제제제 제제제제 c l a s s CDI B_ I m g e Doc : publ i c CDoc um nt a e { p r ot e c t e d: / / c r e a t e f r om s e r i a l i z a t i on onl y CDI B_ I m g e Doc ( ) ; a DECLARE_ DYNCREATE( CDI B_ I m g e Doc ) a gD i / / At t r i but e s p ubl i c : CM B * m DI B; yDI _ CM .... / / CM B 제제제제 제제 제제제 제제제제 yDI 제제제제 1 제제 – BMP 제제제 제제 제제 제제제 Doc ume nt gD i 이이 Cl a s s 이 OnOpe nDoc ume nt 이이이 이이이 1 제제 – BMP 제제제 제제 제제 제제제 OnOpe nDoc um nt e OnOpe 제제제 제제제 제제제 BOOL CDI B_ I ma ge Do c : : OnOpe nDo c u me nt ( LPCTSTR l ps z Pa t h Na me ) BOOL { i f ( ! CDo c u me nt : : OnOpe nDo c u me nt ( l ps z Pa t h Na me ) ) r e t u r n FALSE; / / TODO: Add yo u r s pe c i a l i z e d c r e a t i o n c o de h e r e m DI B = ne w CM B; _ yDI m DI B- >LoadDI B( l ps z Pat hNam ) _ e i f ( m DI B- >Ge t Bi t Count ( ) ! = 24) _ { m DI B- >Fr e e ( ) ; _ Af xM s s age Box( " 제 제제제제제 제제제제 제제제 제제제제제 . ") ; Af e r e t ur n FALSE; } gD i r e t u r n TRUE; } 1 제제 – BMP 제제제 제제 제제 제제제 Vi e w Cl as s 제 OnDr aw 제제제 제제 제제 제제제 • OnDr a w 제제제제 제제제 제제제제 제제 제제제 제 OnDr 제제제제 gD i v oi d CDI B_ I m g e Vi e w: : OnDr a w( CDC* pDC) a voi { CDI B_ I m g e Doc * pDoc = Ge t Doc um nt ( ) ; a e ASSERT_ VALI D( pDo c ) ; / / TODO: a dd dr a w c ode f or na t i ve da t a he r e i f ( pDoc - >m DI B == NULL ) _ r e t ur n ; i f ( ! pDoc - >m DI B- >I s Da t a Nul l ( ) ) _ { p Doc - >m DI B- >Dr a w( pDC- >m hDC) ; _ _ } } 1 제제 – BMP 제제제 제제 제제 제제제 Doc um nt Cl a s s – 제제제제 제제제 제제 Doc e 제제제제 • 제제제제 제제제제 제제제 제제제 제제제제 제제제 제제제 제 CDI B_ I m g e Doc : : CDI B_ I m g e Doc ( ) a a CDI { m DI B = NULL; _ } gD i CDI B_ I m g e Doc : : ~CDI B_ I m g e Doc ( ) a a { i f ( m DI B) _ { d e l e t e m DI B; _ m DI B = NULL; _ } } 1 제제 – BMP 제제제 제제 제제 제제제 이이 이이 이이 gD i • 24 이이 이이이이 BM 이이이 이이이이 이이 P 2 제제 – 제제제 제제제 제제제제 BM P 이이이 이이 • 이이 이이이 R, G, B 이 8 이이이 이이 • 이 R, G, B 이 이이 0 ~255 이 이이 이이 ( Ove r Fl ow, Un de r Fl ow 이이 ) 이이이이 이이이 이이이 이이 • 이이 이이이이 이이 이이 이이이이 이 이이 이이 이이 이이이이 이이이이 R = 125 G = 97 B = 34 R 원 원원 ( 원원 원 ) R = 182 G = 97 B = 34 G 원 원원 ( 원원 원 ) R = 125 G = 124 B = 34 B 원 원원 ( 원원 원 ) gD i 원원 원원 원 R = 125 G = 97 B = 75 원원 원원 원원 R = 155 G = 127 B = 64 CMyDIB Class Method 제제 CMyDIB 제제 Ge t Pi xe l Col or M t hod e • 이 이이이 이이 이이이 이이 이이 이이이 Se t Pi xe l Col or M t hod e • 이이 이이 이이이이 이이이 Br i ght M t hod e • 이이이이 이이이 이이 이이 이이이 Da r k M t hod e gD i • 이이이이 이이이 이이 이이이 gD i CMyDIB Class – MyDib.h c l as s CM B yDI { p ubl i c : CM B( ) ; yDI v i r t ual ~CM B( ) ; yDI i nt Ge t Bi t Count ( ) ; v oi d LoadDI B( CSt r i ng s t r Pat h) ; v oi d Fr e e ( ) ; BOOL I s Dat aNul l ( ) { r e t ur n ( m _pFH == NULL) ; } BOOL Dr aw( HDC hDC) ; v oi d Ge t Pi xe l Col or ( l ong x, l ong y, i nt *r , i nt *g, i nt *b) ; / / 제제 제제 제제 v oi d Se t Pi xe l Col or ( l ong x, l ong y, i nt r , i nt g, i nt b) ; / / 제제 제제 제제 v oi d Br i ght ( ) ; / / 제제 제제 제제 v oi d Dar k( ) ; / / 제제 제제 제제 p r ot e c t e d: pr BI TM APFI LEHEADER *m _pFH; BI TM NFOHEADER *m API _pI H; i nt m i dt h, m _W _He i ght ; i nt m _nBi t Count ; BYTE *m _pPi xe l ; CMyDIB Class – MyDib.cpp voi d CM B: : Ge t Pi xe l Col or ( l ong x, l ong y, yDI i nt *r , i nt *g, i nt *b) { i f ( ( x<0) | | ( y<0) | | ( x>=m W dt h) | | _i ( y>=m He i ght ) ) _ { * b = 0; *g = 0; *r = 0; r e t ur n; } gD i x *3; BYTE* i Ds t = m pPi xe l + y*m W dt h*3 + _ _i *b *g *r = = = *i Ds t ++; *i Ds t ++; *i Ds t ; CMyDIB Class – MyDib.cpp voi d CM B: : Se t Pi xe l Col or ( l ong x, l ong y, i nt yDI r , i nt g, i nt b) { i f ( ( x<0) | | ( y<0) | | ( x>=m W dt h) | | _i ( y>=m He i ght ) ) _ r e t ur n; gD i BYTE* i Ds t ; r = ( BYTE) _ _ m ax( _ _ m n( 255, r ) , 0) ; i g = ( BYTE) _ _ m ax( _ _ m n( 255, g) , 0) ; i b = ( BYTE) _ _ m ax( _ _ m n( 255, b) , 0) ; i i Ds t = m pPi xe l + y*m W dt h*3 + x*3; _ _i * i Ds t ++ = b; * i Ds t ++ = g; * i Ds t = r; gD i CMyDIB Class – MyDib.cpp voi d CM B: : Br i g ht ( ) yDI { i nt r , g , b; f l oa t c = ( 10 0 + 5 0 ) / 10 0 . 0 f ; f or ( i nt y=0 ; y<m He i g ht ; y++) _ { f or ( i nt x=0 ; x<m W dt h ; x++) _i { { Ge t Pi xe l Col or ( x, y, & , r &, & ; g b) r + = 30 ; g += 30 ; b += 30 ; S e t Pi xe l Col or ( x, y, r , g , b) ; } } } CMyDIB Class – MyDib.cpp gD i voi d CM B: : Da r k ( ) yDI { i nt r , g , b; f or ( i nt y=0 ; y<m He i g ht ; y++) _ { f or ( i nt x=0 ; x<m W dt h ; x++) _i { { Ge t Pi xe l Co l or ( x, y, &, &, & ; r g b) r - = 30 ; g - = 30 ; b -= 30; S e t Pi xe l Co l or ( x, y, r , g , b) ; } } 제제 (Tool bar) 제제제 (Tool 제제제 gD i 이이이 이이 이이이 이이이이 이이 이이이 이이이 이이 이 이이 Document Class 제 제제제 제제제 제제 이이 이이 이이이 이이 이이 이이이 이이이 이이 이이이 이이 이이이이 이이 Upda t e Al l Vi e ws gD i 이이이이이 이이 이이 Document Class – 제제제 제제제 제제 Document 제제제 gD i voi d CDI B_ I m age Doc : : OnBut t onBr i ght ( ) { m DI B- >Br i ght ( ) ; _ Updat e Al l Vi e ws ( NULL) ; } voi d CDI B_ I m age Doc : : OnBut t onDar k ( ) v oi { m DI B- >Dar k( ) ; _ Updat e Al l Vi e ws ( NULL) ; } 2 제제 – 제제제 제제제 제제제제 제제 gD i R, G, B 이 이이이 이이 이이이 3 제제 – 제제제 제제 제제 2 이이이이이 이이이 이이이이이 이이이이 이이이이이 이이이이이 3 제제제 제 제제제제제 제제제제이 이이 gD i 이이이 이이이 이이이 이이 이이 이이이이 이이이 이 이이 Document Class – 제제제 제제제 제제제 Document 제제제 gD i Cl a s s W z a r d 이 이이이 이이이 이이이 이이 i Document Class – OnButtonAdd() 제제 제제 voi d CDI B_ I m age Doc : : OnBut t onAdd ( ) { POSI TI ON pos = Af xGe t App( ) - >Ge t Fi r s t Doc Te m at e Pos i t i on( ) ; pl CDI B_ I m age Doc * pDoc ; whi l e ( pos ! = NULL) { CDoc Te m at e * pTe m at e = Af xGe t App( ) pl pl CDoc > Ge t Ne xt Doc Te m at e ( pos ) ; pl >Ge POSI TI ON pos 2 = pTe m at e - >Ge t Fi r s t Doc Pos i t i on( ) ; pl p Doc = ( CDI B_ I m age Doc *) pTe m a t e - >Ge t Ne xt Doc ( pos 2) ; pl } CM B *t m = ne w CM B; yDI p yDI t m >Co py( m DI B) ; p_ CDI B_ I m age Doc *Ne wDoc i =( CDI B_ I m age Doc *) ( ( CDI B_ I m age App*) Af xGe t App( ) ) - > d e m Te m at e - >Ope nDoc um nt Fi l e ( NULL) ; o pl e i f ( Ne wDoc i ) { Ne wDoc i - >m DI B = ne w CM B; _ yDI Ne wDoc i - >m DI B- >Copy( t m ; _ p) Ne wDoc i - >m DI B- >Add( *( pDoc - >m DI B) ) ; _ _ Ne wDoc i - >Se t Ti t l e ( " 제제제 제제제 " ) ; Ne ") gD i } de l e t e t m p; Updat e Al l Vi e ws ( NULL) ; } CMyDIB Class - Copy(CMyDIB *src) 이이 CMyDIB 이이 gD i 이이이이 이이이이 이이이이이 이이이이 이이 CMyDIB Class - Copy(CMyDIB *src) voi d CM B: : Copy ( CM DI B *s r c ) yDI y { l ong s i z e = s r c - >Ge t Si z e ( ) ; i f ( m pFH ) _ d e l e t e m pFH; _ m pFH = ( BI TM _ APFI LEHEADER *) m l l o c ( s i z e ) ; a m m py( m pFH, s r c - >m pFH, s i z e ) ; ec _ _ / / 제제 제제제 제제제제 제제제제제 I ni t i a l i z e ( ) 제 제제제제 제제 . m pPi xe l = ( BYTE *) m pFH + m pFH- >bf Of f Bi t s ; _ _ _ m pI H = ( BI TM NFOHEADER *) ( ( BYTE *) m pFH + _ API _ s i z e of ( BI TM APFI LEHEADER) ) ; gD i m W dt h = m pI H- >bi W dt h; _i _ i m He i g ht = m pI H- >bi He i g ht ; _ _ m nBi t Count = m pI H- >bi Bi t Co unt ; _ _ } App Class - Template Pointer 이이 App 이이 / / CDI B_ I m age App: / / Se e DI B_ I m age . c pp f or t he i m e m nt a t i on of t hi s c l as s pl e // gD i c l as s CDI B_ I m age App : publ i c CW nApp i { p ubl i c : CDI B_ I m age App( ) ; CM t i Doc Te m at e *de m ul pl oTe m a t e pl CM App Class- InitInstance() 이이 App 이이 CM t i Doc Te m a t e * pDoc Te m a t e ul pl pl p Doc Te m a t e = ne w CM t i Doc Te m a t e ( pl ul pl I DR_ DI B_ I M TYPE, RUNTI M CLASS( CDI B_ I m g e Doc ) , E_ a RUNTI M CLASS( CChi l dFr a m ) , / / c us t o m E_ e M c hi l d f r a m DI e RUNTI M CLASS( CDI B_ I m g e Vi e w) ) ; E_ a AddDoc Te m a t e ( pDoc Te m a t e ) ; pl pl gD i de m Te m a t e = pDoc Te m a t e pl pl de o / / Di s pat c h c ommands s pe c i f i e d on t he c ommand l i ne / / i f ( ! Pr oc e s s She l l Command( c mdI nf o) ) / / r e t ur n FALSE; CMyDIB Class - Add(CMyDIB &src) 이이 CMyDIB 이이 이이이이 이이이이 이이 이이이 이이 이 이이이 이이 이이이 이이 2 이 이이이 이이 gD i • 이이이 이이이 이이이이 이이이이이 이이 이이 이이 gD i CMyDib Class - Add(CMyDIB &src) 이이 CMyDib 이이 voi d CM B: : Add ( CM B & r c ) yDI yDI s v oi { i nt r , g, b; i nt r 1, g1, b1; f or ( i nt y=0 ; y<m He i ght ; y++) _ { f or ( i nt x=0 ; x<m W dt h ; x++) _i { Ge t Pi xe l Col or ( x, y, & , & r g, & ; b) s r c . Ge t Pi xe l Col or ( x, y, & 1, & r g1, & b1) ; r = ( r + r 1) / 2; / / 제 제제제 제제제 제제제 제제제 g = ( b + g1) / 2; / / 제제제제 제제제 제제 제제 b = ( b + b1) / 2; / / 제제 제제제제 제제 제제 제제제 . 제제 r = ( BYTE) _ _ m ax( _ _ m n( 255, r ) , 0 ) ; i g = ( BYTE) _ _ m ax( _ _ m n( 255, g) , 0 ) ; i b = ( BYTE) _ _ m ax( _ _ m n( 255, b) , 0 ) ; i S e t Pi xe l Col or ( x, y, r , g, b) ; } } } CMyDIB Class - GetSize() 제제 CMyDIB gD i 이이이이 이이이 이이이이 이이 l ong CM B: : Ge t Si z e ( ) yDI { r e t ur n ( m pI H- >bi Si z e + m pI H_ _ >bi Si z e I m age ) ; >bi } 제 제제제제 제제제 제제 제제 이이 - 이이이이 이이이 이이 이이이이 이이이이 이이 이이 이이이이 이이이 이이이 Vi e w Cl a s s gD i • On I n i t a i l Up da t e 이이 , Se t Sc r ol l Si z e s 이이이 이이이 이이 이이 gD i ViewClass 제 OnInitailUpdate 제제 제 제제 OnInitailUpdate 제제 View Class - OnInitailUpdate 이이 View 이이 gD i voi d CDI B_ I m age Vi e w: : OnI ni t i al Updat e ( ) v oi { CSc r ol l Vi e w: : OnI ni t i al Updat e ( ) ; CDI B_ I m age Doc * pDoc = Ge t Doc um nt ( ) ; e i f ( pDoc - >m DI B == NULL ) _ { S e t Sc r ol l Si z e s ( M _ TEXT, M CSi z e ( 0, 0) ) ; r e t ur n ; } CSi z e s i z e ( pDoc - >m DI B- >Ge t W dt h( ) , _ i p Doc - >m DI B- >Ge t He i ght ( ) ) ; _ S e t Sc r ol l Si z e s ( M _ TEXT, CSi z e ( s i z e . c x, M s i z e . c y) ) ; Re s i z e Par e nt ToFi t ( ) ; MyDIB Class – GetWidth, GetHeight 제제 MyDIB i nt CM yDI B: : Ge t W dt h ( ) i { r e t ur n m_ W dt h; i } gD i i nt CM yDI B: : Ge t He i ght ( ) { r e t ur n m_ He i ght ; } gD i 제제제 제제제 제제 제제 제제 ...
View Full Document

Ask a homework question - tutors are online