본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 프로그래밍
  3. GDI와 DC 개념 정리

GDI와 DC 개념 정리

· 댓글개 · KRFile

GDI란(Graphics Device Interface)?

윈도우 OS를 위해 하드웨어 제조회사들이 MicroSoft에서 미리 정해놓은 사양에 따라 하드웨어를 구동할 수 있는 구동 프로그램인 Device Driver를 작성하여 배포합니다.

그렇기에 윈도우 설치시 그래픽카드와 맞는 Device Driver를 자동으로 윈도우가 설정합니다.

 

응용프로그램이 그래픽을 출력하고자 한다면 윈도우에 요청을 하게되고 윈도우는 Device Driver를 호출하면

Device Driver이 하드웨어를 구동시키게 됩니다.

(Application -> Windows -> Device Driver -> Graphic Card)

 

이렇게 되면 하드웨어의 종류와 관계없이 항상 동일한 명령어를 이용하여 그래픽을 출력할 수 있어 하드웨어에

독립적인 작업이 가능해집니다.

 

GDI는 Windows 운영체제가 응용프로그램에 제공하는 그래픽 출력 API 입니다.

(Windows가 하드웨어를 제어할 수 있도록 응용 프로그램에 제공하는 모든 기능[함수, 구조 등]을 일컬어 GDI라고 합니다.)

 

즉 GDI는 응용프로그램과 Device Driver의 중간 역할을 하는 존재입니다.

 

프로그래머 입장에서는 응용프로그램 제작시 GDI를 사용해서 그래픽을 출력하면 되기에

그래픽 카드가 RTX2060이던 GTX1080이던 이번에 새로나온 RTX3080이던 관계가 없다는 얘기죠.

 

GDI를 사용하면 선 두께, 색상, 위치, 도형 등 다양한걸 세세하게 제어할 수 있습니다.

설정히 자세하기에 세세하게 제어 가능하단 장점이 있지만 간단히 제어하고 싶을땐 번거롭고

오히려 단점이 될 수 있습니다. 

 

그래서 이것을 간편화 하기 위해 DC(Device Context)라는 개념을 도입하게 됩니다.

 

DC(Device Context)

DC란 윈도우 응용프로그램에서 화면 출력을 위해 출력 속성을 정의하는 구조체(struct) 입니다.

즉, 화면 출력을 위해 여러 속성값들을 모아놓은 상자라고 보시면 됩니다.

 

더보기

이 글을 읽는 분들은 프로그래밍을 어느정도 아셔서 추가 개념을 공부하러 오신다는 가정하에 작성하고 있지만

구조체의 개념에 대해 궁금하신 분들은 다음 링크를 참고하시기 바랍니다.

 

기본 옵션값으로 출력이 가능하고 이 옵션값을 변경하여 다르게 출력도 가능합니다.

 

그렇기에 윈도우는 화면에 출력할때 반드시 DC가 필요합니다.

 

화면에 출력을 하려면 화면에 대한 DC 핸들을 얻어야 하고 프린터는 프린터 DC 핸들을 얻어야 합니다.

DC 핸들은 출력 대상을 나타내는 구분 번호입니다.

 

모든 GDI 함수는 첫번째 인자에 DC핸들을 요구합니다.

 

DC는 기본적으로 GetDC(), ReleaseDC()를 이용해 DC를 얻고 사용후 해제하는 작업을 하는게 정석입니다.

DC의 다양한 속성은 아래 링크와 인터넷을 참고하시길 바랍니다..

 

 

 

<참고문헌>

cking4w.tistory.com/161

 

GDI와 DC (개념정리)

원문보기: http://feel2.kr/blog/5 윈도우즈에서 출력하기 위해 필요한 개념 및 텍스트 그래픽을 출력하는 방법에 대해 살펴 본다. 윈도우OS에서는 하드웨어 제조회사들이 MS에서 미리 정해놓은 사양에

cking4w.tistory.com

luckygg.tistory.com/89

 

[GDI] Part 1. GDI 개념

GDI(Graphics Device Interface)는 Windows 운영체제가 제공하는 그래픽 출력 기능입니다. 모니터, 프린터 등 출력장치에 선, 직선, 도형, 비트맵 등의 그래픽 출력을 위해 프로그래머가 사용할 수 있는 함��

luckygg.tistory.com

blog.naver.com/pigeonkim/140038936613

 

GDI 와 DC 개념잡기

GDI와 DC의 개념 윈도우에서의 그래픽 출력은 크게 GDI(Graphics Device Interface)와 DC(De...

blog.naver.com

 

'프로그래밍' 카테고리의 다른 글

현재 프로그래밍 공부 방침  (0) 2022.01.31
SNS 공유하기
최근 글
파일의 IT 블로그
추천하는 글
파일의 IT 블로그
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.