[ios] Hex to RGB
안녕하세요. 프로젝트를 진행하다 보면 모든 뷰의 색을 인터페이스 빌더에만 의존하여 지정해주기는 불편한 감이 없지 않아 있습니다. 그래서 저는 평소에 프로젝트의 테마 색이라고 해서 Extension
을 만들어서 사용했는데요. 하지만 제가 사용했던 방법도 마냥 편하지는 않아서 보다 편한 방법을 찾아보다가 알고 이해한 방법이 있어 이렇게 소개해드리려 합니다.
그럼 바로 시작해보도록 하겠습니다.
Hexadecimal & RGB
색은 크게 이 두 가지로 표현할 수 있습니다. 물론 다른 방법들도 존재합니다. 하지만 오늘은 이 두 가지에 대해서만 다루도록 하겠습니다. 이 두 표현법은 서로 변환될 수 있으며 한 가지만 알면 다른 하나도 알 수 잇습니다.
RGB
먼저 이해하기 쉬운 RGB부터 다뤄보도록 하겠습니다. RGB는 Red, Green, Blue의 약자로 이 세 가지의 색상을 이용하여 색을 표현하는 방법입니다.
- RGB(255, 0, 0) : Red
- RGB(0, 255, 0) : Green
- RGB(0, 0, 255) : Blue
이렇게 값을 조절해가며 서로의 색을 섞을 수 있습니다. 그리고 이를 3 byte, 총 24 bit의 2진수로 표현하고 이를 16진수로 변환한 값이 Hexa 값이 되는 것입니다.
R,G,B 각각은 1 byte를 차지하며 1 byte는 8bit이므로 RGB(255, 0, 0)을 24비트짜리 2진수와 16진수로 표현한다면 다음과 같습니다.
그럼 다음의 색상을 변환해보도록 하겠습니다.
Implemantation
이제 본격적으로 코드로 구현해보도록 하겠습니다. 위의 예제는 RGB 값을 Hexa 값으로 바꾸었다면 이의 반대는 코드로 구현해보도록 하겠습니다.
Swift에서 16진수는 0x를 붙여서 표현합니다.