DX라이브러리2014. 12. 22. 17:09

2.1 이미지 처리 : 응용편


샘플 이미지 두개를 이용하여 진행한다.


 


 


 image/character_00.png

image/character_01.png 


아래의 예제는 character_01.png를 처리한 후 character_00.png를 처리하고 있다.


#include <DxLib.h>


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );


        int x = 0;

        int Handle00, Handle01;

        Handle00 = LoadGraph( "image/character_00.png" );

        Handle01 = LoadGraph( "image/character_01.png" );


        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){


                DrawGraph( x/2, 0, Handle01, TRUE );

                DrawGraph( x,   0, Handle00, TRUE );

                x++;


        }

        

        DxLib_End();

        return 0;


실행결과




프로그램은 위에서부터 차례대로 실행되기 때문에 character_01.png가 먼저 그려지고 이후 character_00.png가 그려지게된다. 이 때문에 좀더 나중에 그려진 이미지가 먼저 그려진 이미지보다 위에 보이게 된다. 다음 예제는 순서를 바꾸어 본 경우이다.


#include <DxLib.h>


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );


        int x = 0;

        int Handle00, Handle01;

        Handle00 = LoadGraph( "image/character_00.png" );

        Handle01 = LoadGraph( "image/character_01.png" );


        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){


                DrawGraph( x/2, 0, Handle00, TRUE );

                DrawGraph( x,   0, Handle01, TRUE );

                x++;


        }

        

        DxLib_End();

        return 0;


실행결과




결과에서 보는 것 처럼 character_01.jpg의 이미지에는 투명한 부분이 포함되어있는 이미지다.  DrawGraph함수를 통하여 투명도 적용 여부를 결정 가능하다.


DrawGraph( x/2, 0, Handle00, TRUE );


붉은색 표시된 TRUE를 FALSE로 변경하면 투명부분을 처리하지 않는다.


Posted by 캡슐리어