트루 컬러(24비트) 테스트 패턴 인쇄

트루 컬러(24비트) 테스트 패턴 인쇄

내 터미널/tmux가 트루 컬러/24비트 컬러/1,680만 색상을 표시하도록 올바르게 설정되었는지 어떻게 테스트합니까?

답변1

다음 스크립트는 아래와 같이 테스트 패턴을 생성합니다.

트루 컬러 테스트 패턴

다음과 같이 호출하도록 선택할 수 있습니다.

width=1000 truecolor-test

width열 패턴이 인쇄됩니다 .

#!/bin/bash
# Based on: https://gist.github.com/XVilka/8346728

awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{
    s="/\\";
    for (colnum = 0; colnum<term_cols; colnum++) {
        r = 255-(colnum*255/term_cols);
        g = (colnum*510/term_cols);
        b = (colnum*255/term_cols);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum%2+1,1);
    }
    printf "\n";
}'

답변2

편집했습니다Tom Hale의 답변 기능은 여기에 있습니다.출력을 분할하는 줄 번호 옵션이 추가되었습니다. 색상을 더 자세히 보여주기 때문에 유용하다고 생각합니다.

높이 20의 트루 컬러 명령 시연

#!/bin/bash
# Based on: https://gist.github.com/XVilka/8346728 and https://unix.stackexchange.com/a/404415/395213

awk -v term_cols="${width:-$(tput cols || echo 80)}" -v term_lines="${height:-1}" 'BEGIN{
    s="/\\";
    total_cols=term_cols*term_lines;
    for (colnum = 0; colnum<total_cols; colnum++) {
        r = 255-(colnum*255/total_cols);
        g = (colnum*510/total_cols);
        b = (colnum*255/total_cols);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum%2+1,1);
        if (colnum%term_cols==term_cols) printf "\n";
    }
    printf "\n";
}'

관련 정보