반응형
보통 컬러에 사용할 때, 0xFFFFFF -> RGB를 각각 1byte 씩 매칭하여 사용된다.
그러나 tft lcd 를 arduino 같은 플랫폼에서 사용할 때는 3 byte가 아닌 2 byte 형태로 축소하여 Color를 표현하기도 하는데 이것을 위한 컬러 변환 하는 방법은 아래와 같다.
unsigned long rgb = strtol(hex_code.c_str(), NULL, 16);
// 3byte에서 각각의 R, G, B 값을 추출합니다.
byte red = (rgb >> 16) & 0xff;
byte green = (rgb >> 8) & 0xff;
byte blue = rgb & 0xff;
// 각각의 값을 2byte 형태로 변환합니다.
byte r_2byte = map(red, 0, 255, 0, 31); // 5비트 (31 = 0b11111)
byte g_2byte = map(green, 0, 255, 0, 63); // 6비트 (63 = 0b111111)
byte b_2byte = map(blue, 0, 255, 0, 31); // 5비트 (31 = 0b11111)
// 2byte로 합쳐서 새로운 2byte 색상 코드를 만듭니다.
unsigned int color_2byte = (r_2byte << 11) | (g_2byte << 5) | b_2byte;
반응형
'프로그래밍 > IoT' 카테고리의 다른 글
[IoT] Windows IoT Core 라즈베리파이 3 - PWM (0) | 2022.04.18 |
---|---|
[IoT] Windows IoT Core 라즈베리파이 3 화면 회전 (0) | 2022.04.12 |
[IoT] Windows IoT Core 라즈베리파이 3 개발환경 구축 - 2 (0) | 2022.04.12 |
[IoT] Windows IoT Core 라즈베리파이 3 개발환경 구축 - 1 (0) | 2022.04.07 |
[IoT] Esp32 여유 Heap 정보 알아보기 (0) | 2020.11.25 |