In một mẫu thử 256 màu trong thiết bị đầu cuối


63

Làm cách nào để in mẫu thử nghiệm 256 màu trong thiết bị đầu cuối của tôi?

Tôi muốn kiểm tra xem thiết bị đầu cuối của tôi có hỗ trợ chính xác 256 màu không.


/cubesvào irssi ( nguồn )
mirabilos

Câu trả lời:


95

Mẫu thử nghiệm 256 màu

Để có được hình ảnh dưới đây, sử dụng:

curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/ | bash

Mẫu thử nghiệm 256 màu

Các ý chính bash/ zshđangshellchecksạch, và cũng hỗ trợ "Look Ma, không có quy trình con!".


Ngoài ra, để bashnhanh chóng:

for i in {0..255} ; do
    printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i"
    if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then
        printf "\n";
    fi
done

Đối với tổng số tiền quá mức, phần lớn của lô là terminal-colorsmột tập lệnh 572 dòng với nhiều định dạng đầu ra .

Bạn cũng có thể in một mẫu thử nghiệm màu thật (24 bit) .


7
Tôi thích nhận xét của bạn về thang độ xám trên trang GitHub của tập lệnh - "#Not 50, nhưng 24 Sắc thái xám"
MadisonCooper

1
Đây là một thử nghiệm màu 24 bit khác: gist.github.com/lifepillar/09a44b8cf0f9397465614e622979107f
masterxilo

Để chạy terminal-colors, làmcurl -s https://raw.githubusercontent.com/eikenb/terminal-colors/master/terminal-colors | python
masterxilo

@masterxilo là gì terminal-colorsvà làm thế nào để so sánh với các tùy chọn tôi đề xuất?
Tom Hale

mẫu printf trông như thế nào để tô màu văn bản thay vì nền?
ianstarz

35

Tôi đã tìm thấy một tập lệnh Python đẹp cho nó trên GitHub được viết bởi Justin Abrahms, cũng in mã hex của các màu.

Tải tập lệnh về thư mục làm việc hiện tại

wget https://gist.githubusercontent.com/justinabrahms/1047767/raw/a79218b6ca8c1c04856968d2d202510a4f7ec215/colortest.py

cho phép nó thực thi

chmod +x colortest.py

Chạy nó:

./colortest.py

Đây là tập lệnh đầy đủ trong trường hợp liên kết-quay:

#!/usr/bin/env python
# Ported to Python from http://www.vim.org/scripts/script.php?script_id=1349

print "Color indexes should be drawn in bold text of the same color."
print

colored = [0] + [0x5f + 40 * n for n in range(0, 5)]
colored_palette = [
    "%02x/%02x/%02x" % (r, g, b) 
    for r in colored
    for g in colored
    for b in colored
]

grayscale = [0x08 + 10 * n for n in range(0, 24)]
grayscale_palette = [
    "%02x/%02x/%02x" % (a, a, a)
    for a in grayscale 
]

normal = "\033[38;5;%sm" 
bold = "\033[1;38;5;%sm"
reset = "\033[0m"

for (i, color) in enumerate(colored_palette + grayscale_palette, 16):
    index = (bold + "%4s" + reset) % (i, str(i) + ':')
    hex   = (normal + "%s" + reset) % (i, color)
    newline = '\n' if i % 6 == 3 else ''
    print index, hex, newline, 


7

Một tập lệnh khác, được viết bởi tôi, nằm trong kho VTE: https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38 .

Nó đòi hỏi một cửa sổ gồm 120 cột trở lên, nhưng sắp xếp màu sắc của khối 6x6x6 độc đáo và gọn nhẹ. Các chữ số đầu tiên của các chỉ số được tước bỏ cho gọn, bạn có thể dễ dàng tìm ra chúng. Các thanh dọc cung cấp cho bạn khả năng kiểm tra RGB chính xác của màu nền trước mà không cần khử răng cưa (giống như ở các chữ số).

Phần đầu ra (không hiển thị trong ảnh chụp màn hình bên dưới) thể hiện sự điên rồ đi cùng với sự mơ hồ đậm và sáng, cụ thể là chuỗi thoát đậm nét kết hợp với một trong các chuỗi thoát 8 màu kế thừa cho tiền cảnh cũng chuyển sang màu đối lập sáng, trong khi với các chuỗi thoát kiểu mới (có khả năng 256 màu), đây không còn là trường hợp nữa, thậm chí không có trong 8 màu đầu tiên. Ít nhất đó là cách xterm và VTE (Gnome Terminal, v.v.) hoạt động.

Ảnh chụp màn hình này cho thấy khoảng một nửa sản lượng:

Đầu ra của 256test.sh trong Terminal Gnome


2
curl -s -L https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38 | bash
masterxilo

6

Có lẽ không cần thiết nhưng tôi đã viết một phiên bản in 256 màu bằng cách sử dụng nền phát hiện độ rộng vỏ tự động để màu sắc dễ nhìn thấy hơn.

https://gist.github.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3

Bản thử nghiệm 256 màu

#!/usr/bin/env python
from __future__ import print_function

import os
import shutil
import subprocess


def get_width(default=80):
    '''Attempt to detect console width and default to 80'''
    try:
        columns, rows = shutil.get_terminal_size()
    except AttributeError:
        try:
            _, columns = subprocess.check_output(['stty', 'size']).split()
        except OSError:
            columns = os.environ.get('COLUMNS', default)

    columns = int(columns) - 77
    # Since we have 6 columns with 1 space on each side, we can increment the
    # size for every 12 extra columns
    return max(0, columns / 12)


# Loosely based on https://gist.github.com/justinabrahms/1047767
colored = [0] + list(range(95, 256, 40))
colored_palette = [
    (r, g, b)
    for r in colored
    for g in colored
    for b in colored
]


grayscale_palette = [(g, g, g) for g in range(8, 240, 10)]


esc = '\033['
# Reset all colors sequence
reset = esc + '0m'
# Regular color
normal = esc + '38;5;{i}m'
# Bold color
bold = esc + '1;' + normal
# Background color
background = esc + '48;5;{i}m'

pattern = (
    '{normal}{background}{padding:^{width}}{i:^3d} '  # pad the background
    '{r:02X}/{g:02X}/{b:02X}'  # show the hex rgb code
    '{padding:^{width}}'  # pad the background on the other side
    '{reset}'  # reset again
)

base_context = dict(reset=reset, padding='', width=get_width())

for i, (r, g, b) in enumerate(colored_palette + grayscale_palette, 16):
    context = dict(i=i, r=r, g=g, b=b, color=r + g + b, **base_context)
    context.update(bold=bold.format(**context))
    context.update(background=background.format(**context))

    # Change text color from black to white when it might become unreadable
    if max(r, g, b) > 0xCC:
        context.update(normal=normal.format(i=0))
    else:
        context.update(normal=normal.format(i=255))

    print(pattern.format(**context), end='')

    # Print newlines when needed
    if i % 6 == 3:
        print()
    else:
        print(' ', end='')

2
Nếu bất cứ ai muốn chạy tập lệnh này trong một lớp lót, hãy chạycurl https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/250eb2e3f2acca1c51aa52adf611ec0380291e8a/colortest.py | python3
Tommaso Thea Cioni

Tôi đề nghịcurl -s https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/colortest.py | python3
masterxilo

3

Một lớp lót

màu nền

for i in {0..255}; do printf '\e[48;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done

màu nền

for i in {0..255}; do printf '\e[38;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.