본문 바로가기

.NET

C# GDI +

반응형
GDI+ (Graphic Device Interface Plus )


 그래픽 장치  칭 그래픽 카드 - 종류에 상관없이 그래픽 기능을 사용하는 프로그램을 쉽게 작성할 수 있도록 도와주는 API 모음을 말한다. 윈도우 이전의 도스 프로그램의 경우 자신이 원하는 그래픽 프로그램을 개발하려면 그래픽 장치의 종류를 다 알아야 하고 그에 맞는 하드웨어적인 지식을 가지고 화면에 표시할 수 있도록 개발을 해야 했다. 이는 프로그래머에게 엄청난 스트레스를 던져주는 일이었다. 약간 벗어나는 얘기이지만 윈도우가 처음 나와서 윈도우 창만 띄우는 프로그램을 코딩하는데 3주정도의 시간이 걸렸었다. 이것과 일맥상통한 이야기라고는 할 수 있다.


GDI+ 의 가장 특징적인 세가지 기능은,

  • 2D 벡터 그래픽 표현
  • 문자 출력
  • 이미지 출력

이다.


닷넷의 기본적인 기리기 엔진은 win32 gdi 모듈의 업그레이드 버전인gdi+이다 닷넷은win32로부터 많은 유산을 물려받앗지만 그리기 엔진만큼은 완전히 새로 만들었다 gdi 는 만들어진지ㅣ 너무 오래되었고 nt에서 몇가지 개선이 이루어지기는 했지만 현대적인 화려한 그래픽환경을 구현하기에는 기능이 너무 부족하기 때문이다gdi+는 주로 닷넷을 위해 만들어졌지만 네이티브 c++라이브러리 구현되어있어 일반윈도우즈프로그래밍에서 사용할 수 있다. 닷넷은 gdi+를 비관리 코드인c++의 dll을 호출함으로써 구현하는데 그리기 속도가 전체적인 성능에 워낙지대한영향을 미치기 때문이다

그럼 가장 먼저 Point와 Size 구조체에 대해서 알아보자.

이 둘은 2차원 모니터와 같이 평면값 위치를 나타내기 위해서 필요한 구조체이다. 


Point는 마우스 좌표용이고 

Size는 윈도우 영역을 저장하기 위해서 필요한 구조체이다. 

생성자설명
 Point() 기본 생성자
Point(int data) data의 앞 16비트는 y값, 뒤 16비트는 x값으로 저장
Point(Size data) Size구조체의 Width X, Height Y값으로 설정
 Point(int x, int y) 입력된 x, y를 Point 구조체의 X, Y값으로 설정
 Size() 기본 생성자
 Size(Point data) Point 구조체 X는 Width, Y는 Height 값을 저장
Size(int x, int y) 입력된 x, y를 Size 구조체의 Width, Height 값을 설정