C# - System.Windows.Media.Color to System.Drawing.Color

title-gonggo.png

C# - System.Windows.Media.Color to System.Drawing.Color

C# 에서 Color와 관련된 것이 2가지가 있습니다. 한가지는 System.Drawing.Color 이고 다른 한가지는 System.Windows.Media.Color 입니다. 두가지 모두 색과 관련된 정보를 담고 있습니다. 두개 모두 구조체이고 ValueType입니다. 

 

img.png

 

1. System.Drawing.Color

System.Drawing.Color의 경우 아래와 같이 사용할 수 있습니다.

 

img.png

 

 A는 해당 색의 투명도를 표현합니다. 그리고 RGB값을 이용해 색을 만들 수 있습니다. 다른 방법으로 이미 만들어져있는 색들 중에서 가져오는 방법이 있습니다.

 

img.png

 

이런식으로 미리 정의된 Color를 그대로 이용할 수 있습니다. 

2. System.Windows.Media.Color

System.Windows.Media.Color 의 경우 다음과 같이 사용할 수 있습니다. 해당 Color를 이용하기 위해서는 PresentationCore.dll 라는 dll를 참조하여야 합니다.

 

img.png

 

아까와 차이점은 A, R, G, B 라는 변수를 int 에서 byte로 바꿔준 것입니다. 사용법은 거의 같습니다. 그리고 System.Windows.Media.Color 에도 미리 Color들이 정의가 되어있습니다. 그리고 이 Color를 사용할 수 있습니다. 조금 다른 것은 별로의 Colors 라는 클래스가 있어서 해당 클래스에서 색을 저장하고 있다는 것입니다. 

 

img.png img.png

 

 

프로그래밍을 하다가 보면 두가지 Color를 혼합하여 사용하는 경우가 많이 있는데요. 이 경우 System.Drawing.Color 를 System.Windos.Media.Color 로 변경하거나 System.Windows.Media.Color 를 System.Drawing.Color 로 변경하는 경우가 있는데요. 이 경우 어떻게 하는지 알아보도록 하겠습니다. 

3_1. System.Drawing.Color to System.Windows.Media.Color

가장 간단한 방법은 아래와 같은 방법입니다.

 

img.png

3_2. System.Windows.Media.Color to System.Drawing.Color

 

가장 간단한 방법은 아래와 같은 방법입니다.

 

img.png

 

이런식으로 변환하는 함수를 만들어서 사용할 수 있습니다. 또 확장 메서드를 이용해서 변환함수를 정의할 수 있습니다.

이런식으로 확장 메서드를 정의를 하고 필요한 곳에서 사용하면 되죠.

 

img.png

 

아래는 실제로 사용한 예제입니다.

 

img.png

 

색을 바꾸는 경우가 자주 있다면 이런식으로 사용하면 편하겠죠?

0 Comments

최근글


새댓글


Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand