[C# 고급] GDI+ 브러시
ㅁ GDI+ 브러시 다루기
- 채워진 모양, 이미지 또는 텍스트 같은 그래픽의 영역을 채우는데 사용.
※ 브러시(Brush)의 종류
클래스 |
설명 |
SolidBrush | 가장 간단한 형식의 브러시로 단색으로 그림 |
HatchBrush | SolidBrush와 비슷하지만 단색 대신 미리 설정된 다양한 패턴 중에서 선택하여 그릴 수있음 |
TextureBrush | 이미지와 같은 질감을 사용하여 그림 |
LinearGradienBrush | 그라데이션에 따라 혼합된 두 가지 색으로 그림 |
PathGradienBrush | 개발자가 정의한 고유한 경로에 따라 혼합된 색의 복합 그라데이션을 사용하여 그림 |
▶ SolidBrush
☞ SolidBrush는 단색의 기본적인 브러시로 특정 색깔을 이용해서 선 사이의 공간이 이미지 혹은 다양한 형태의 도형의 내부를 채울 때 사용한다.
///////// 예제 코드//////////////////////////////////////////////////////////////////////
Graphics graphics = this.CreateGraphics();
//this.CreateGraphics(): 해당컨트롤에대한Graphics를만든다.
SolidBrush sbrush = new SolidBrush(Color.Red);
graphics.FillRectangle(sbrush, 0, 0, 100, 100);
/*오버로드3번째인자값내용들
첫번째: 채우기의특징을결정하는브러시입니다
두번째: 채울사각형을나타내는Rectangle구조체입니다
세번째: 채울사각형의왼쪽위모퉁이에대한Y좌표입니다
네번째: 채울사각형의너비입니다
다섯번째: 채울사격형의높이입니다.*/
/////////////////////////////////////////////////////////////////////////////////////////
▶ HatchBrush
☞ System.Drawing.Drawing2D 네임스페이스 내에 포함되어 있는 HatchBrush는 HatchStyle 열거형에 있는 값 중 하나로 표현된 다양한 형태를 이용하여 특정 부분을 채울 때 사용한다.
※ 대표적인 Hatch 무늬값
열거형 값 |
설명 |
BackwardDiagonal | 오른쪽 위에서 왼쪽 아래로 사선이 그어진 형태의 브러시 |
Cross | 수직선과 수평선의 겹친 바둑판 형태의 선이 그어진 브러시 |
ForwardDiagonal | 왼쪽 위에서 오른쪽 아래로 사선이 그어진 형태의 브러시 |
Horizontal | 수평선이 그어진 브러시 |
Vertical | 수직선이 그어진 브러시 |
///////// 예제 코드/////////////////////////////////////////////////////////////////////
using System.Drawing.Drawing2D;
…
Graphics graphics = this.CreateGraphics();
HatchBrush hbrush = new HatchBrush(HatchStyle.Cross, Color.Red, Color.Blue);
/* HatchBrush의 특징 중에 하나는 위와 같이 두개의 색을 쌍으로 사용하는 것이다.(앞의 것은 전경색,뒤에 것은 배경색으로 사용)
graphics.FillRectangle(hbrush, 0, 0, 100, 100);
/////////////////////////////////////////////////////////////////////////////////////////
▶ TextureBrush
☞ TextureBrush는 패턴으로 이미지를 사용한다. 비트맥 이미지에 브러시를 사용하여 채우기 (Fill) 작업을 할때 사용하는 것이다.
///////// 예제 코드/////////////////////////////////////////////////////////////////////
TextureBrush BGTextureBrush = new TextureBrush("bgimage.bmp");
TextureBrush TXTTextureBrush = new TextureBrush("txtimage.bmp");
Graphics g = this.CreateGraphics();
Rectangle r = new Rectangle(10, 10, 150, 150);
Font font = new Font("Arial", 60, FontStyle.Bold | FontStyle.Italic);
g.FillRectangle(BGTextureBrush, r);
g.DrawString("Hello world~", font, TXTTextureBrush, r);
/////////////////////////////////////////////////////////////////////////////////////////
▶ LinearGradientBrush
☞ 그라데이션 효과를 나타내기 위해 두가지 색을 부드럽게 혼합하여 모양을 채울때 LinearGradienBrush를 사용한다.
※ LinearGradientBrush 열거형
열거형 값 |
설명 |
BackwardDiagonal | 오른쪽 위에서 왼쪽 아래로 그라데이션 효과를 준다. |
ForwardDiagonal | 왼쪽 위에서 오른쪽 아래로 그라데이션 효과를 준다. |
Horizontal | 수평으로 그라데이션 효과를 준다. |
Vertical | 수직으로 그라데이션 효과를 준다. |
///////// 예제 코드/////////////////////////////////////////////////////////////////////
using System.Drawing.Drawing2D;
…
Graphics graphics = this.CreateGraphics();
LinearGradientBrush lgbrush = new LinearGradientBrush(ClientRectangle, Color.Red, Color.Yellow, LinearGradientMode.Vertical);
graphics.FillRectangle(lgbrush, 10, 10, 200, 200);
/////////////////////////////////////////////////////////////////////////////////////////
★ 그라데이션 ★--------------------------------------------------- 그라데이션이란 그래픽의 기법으로 한 색상에서 다른 색상으로 또는 어두운 데
에서 밝은 값으로, 거친 질감에서 매끈한 질감으로 등과 같이 점진적으로 변화하
는 것을 말한다.
-----------------------------------------------------------------
- 참고 서적 : C# 게임 프로그래밍 -