본문 바로가기

기술자료/CPP

GDI+ 에 대해서.

GDI+ 란 class 기준으로 제작한 C/C++ 프로그래머들을 위한 API이다.
제작하는 방법은 다양하지만, MFC 기반으로 제작을 하게 되지만, API
함수를 부르는 형태로 구성하기도 한다.
MFC7.0 에서는 자동적으로 부르게 되어 있지만, MFC4.2에서는 아직
본격적 지원은 하지 않는다.

GDI+ 는 WindowsXP와 Window2003에서는 자체적으로 포함되어 있으며, Windows NT 4.0 SP6, Windows 2000,  Window98/ME 등에서는 설치를 해서 처리하게 된다.  실행시에는 System 폴더 안에, Gdiplus.dll 이 있으면 된다.

GDI+는 크게 3가지 부분으로 구성되어 있다.
- 2D Vector graphic
     점/선/상자/색칠 등의 기능을 사용하는 기능으로 일반적인 그림 그리기의 기능을 의미하게 된다.
- 이미지 처리
      각종 디지털 사진들의 처리라든가, 특정 컴포넌트에서 표현하기 힘든 그리기 기능들을 적용할 때 이용되는 기술이다.
- 글자처리
       폰트에 관련되어 출력하게 되는 처리에 대한 기술

이 GDI+ 의 구성은 40여개의 클래스와 50여개의 나열자, 6개의 구조체로 구성된다. 그 중 Class로 구성되지 않은 함수도 존재한다.
보통 Graphics 라는 클래스에서 시작되어 구성되어 있다. 그러나 몇개의 클래스등을 다목적으로 이용하기 위해 그 외의 형태로 구성되기 도 한다.
그리고 클래스에 포함안된 함수가 있는데, GdiplusStartup / GdiplusShutdown이 바로 그 둘이다.

기존 GDI에서 추가된 사항은
Gradient Brushs 기능,  Cardinal Splines 기능, 독립적 Path Objects,  Transformations 와 Matrix Object, Scalable Regions과 다양한 이미지 파일의 지원등이다.
그리고 기존 GDI객체를 사용하는데서 오는 변경을 몇가지 해줘야 하는데,
GDI+에서는 Graphics 객체를 사용하게 된다. 이를 적용하려면, HDC를 전해 주는 것으로 해결하게 된다 . 즉 Graphics 객체에게 HDC를 건네주어 처리하는 것이다.