TTY의 트루 컬러 지원

TTY의 트루 컬러 지원

tty에서 실제 색상을 지원하는 방법이 있는지 궁금합니다. 명확하게 말하면 터미널 에뮬레이터를 말하는 것이 아니라 디스플레이 서버가 실행되지 않을 때 얻는 실제 tty를 말하는 것입니다.

답변1

리눅스 콘솔24비트 RGB 색상 지정자를 포함한 ECMA-48 SGR 코드를 지원합니다.

for (( i = 0; i < 256; i++ )); do
    printf '\e[38;2;0;0;%dma\e[0m' "$i"
done
printf '\n'

그러나 콘솔이 프레임 버퍼를 사용하더라도 현재 구현에서는 이를 기본 팔레트에서 가장 가까운 16개 색상으로 축소합니다.

Linux의 프레임 버퍼는 기본적으로 24비트 색상을 지원하므로 콘솔 터미널 에뮬레이터를 작성할 수 있습니다(예:페이스북 용어)은 24비트 SGR 코드를 완벽하게 지원하지만 현재는 하나도 모릅니다.

다음과 같은 도구fbi콘솔에 트루 컬러 이미지를 표시하는 데 사용할 수 있습니다. 소스 fbida타르볼에는 fbcon256색 SGR을 지원하는 코드가 포함되어 있습니다:

for (( i = 0; i < 256; i++ )); do
    printf '\e[38;5;%dma\e[0m' "$i"
done
printf '\n'

256색을 보여주는 fbcon의 스크린샷

답변2

아니요.

실제 터미널은 다음에서 실행됩니다.비디오 카드용 "텍스트 모드". 여러 가지 텍스트 모드가 있습니다. 역사적인 이유로 최대 색상은 16색입니다. 오래 전에 텍스트 모드는 개선을 멈추고 그래픽 모드로 대체되었습니다.

따라서 이론적으로 텍스트 모드에서 24비트 색상(트루 컬러)을 갖는 것이 가능하지만 이를 위해서는 매우 특이한 하드웨어를 찾아야 합니다.

관련 정보