TFT LCD 예제 하나 뜯어보면서 정의된 내용 보고있는데 예제에서 설정한 색상의 리스트가 위의 사진이야.
내가 알고있는 색상코드는 RGB값을 각각 두자리의 16진수로 나타낸 #FFFFFF 같은 거란 말이지
근데 코드에선 16진수는 4자리일 뿐이고 심지어 MAGENTA와 BRED 색상을 보면 0xF81F와 0XF81F로 X의 대/소문자 구분만 되어있지만
실제로 출력해보면 같은색깔인거 같아
저 색상코드는 어떻게 계산하는 것이며 0x와 0X에 유의미한 차이가 있는지 너무 궁금해
찾아봐도 내가 알고있는 색상코드의 설명뿐이고 너무 힘들다
12개의 댓글
무분별한 사용은 차단될 수 있습니다.
Patrick
0x랑 0X는 차이 없고 0x00FFFF = 0xFFFF
돗돗리판
그럼 코드속 RED 값은 F800인데 rgb 값이 어떻게 되는거야?
Patrick
근데 저거 선언댄거 보니까 rgb 형태가 아닌거 같은데? white가 FFFFFF가 대야하는데 FFFF인거보니
돗돗리판
그치? 뭔가 이상하다니까
근데 예제라서 돌려보면 잘 나오는게 또 골때림
Patrick
24비트 rgb가 아니라 18비트 rgb인듯
돗돗리판
아래 댓글이랑 섞어서 찾아보니 16비트 rgb 인거 같아 답변 고마워
Patrick
tft lcd는 찾아버니까 16비트 rgb가 맞아
rgb565 검색해보면 더 알기쉬울거야
안드로이드박사
0x는 16진수라는걸 나타내는거고 대소문자 차이없음
아리성애자
왜 같은 색이 나오냐면 blue + red 가 magenta거든..
돗돗리판
구분지어서 정의해놨길래 뭔가 다를까 했지 ㅎㅎ
아리성애자
일단 난 이거 모르는데 여기 써잇는거만 보고 생각해보면
빨강은 0xf800이지 파랑은 0x001f고 녹색은 0x07e0
얘들을 이진수로 바꾸면
빨강 111110...0
파랑 0...011111
녹색 0000011111100000
2진수로 앞에 5자리는 r 가운데6자리는 g 마지막5자리 b인듯
돗돗리판
이거 보고 찾아봤는데 16진수 rgb인거 같아
0~31 범위의 숫자로 표현하고 r,g,b 값 모두 5자리 씩 사용하고 g값이랑 b값 사이에 하나의 비트는 사용하지 않는대
덕분에 오늘 하나 배워간다 고마워