टर्मिनल में 256-रंग परीक्षण पैटर्न प्रिंट करें


62

मैं अपने टर्मिनल में 256-रंग परीक्षण पैटर्न कैसे प्रिंट कर सकता हूं?

मैं यह जांचना चाहता हूं कि मेरा टर्मिनल 256 रंगों का सही समर्थन करता है।


/cubesirssi ( स्रोत ) में टाइप करें
mirabilos

जवाबों:


94

256-रंग परीक्षण पैटर्न

नीचे दी गई छवि पाने के लिए, उपयोग करें:

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

256-रंग परीक्षण पैटर्न

सार bash/ zshकोड है shellcheck, स्वच्छ, और भी समर्थन करता है, "देखो माँ, कोई subprocesses!"।


वैकल्पिक रूप से, bashशीघ्र के लिए:

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

कुल ओवरकिल के लिए, बहुत का पोता है terminal-colors, कई आउटपुट प्रारूपों के साथ 572-लाइन स्क्रिप्ट है

आप एक असली रंग (24-बिट) परीक्षण पैटर्न भी प्रिंट कर सकते हैं ।


7
मुझे GitHub पेज की स्क्रिप्ट्स में ग्रेस्केल पर आपकी टिप्पणी पसंद है - "# 50 नहीं, बल्कि 24 शेड्स ऑफ ग्रे"
मैडिसनकोपर

1
यहाँ एक और 24-बिट रंग परीक्षण है: gist.github.com/lifepillar/09a44b8cf0f9397465614e622979107f
मास्टरएक्सिलो

चलाने के लिए terminal-colors, क्या करेंcurl -s https://raw.githubusercontent.com/eikenb/terminal-colors/master/terminal-colors | python
मास्टरएक्सिलो

@masterxilo क्या है terminal-colorsऔर यह मेरे द्वारा सुझाए गए विकल्पों की तुलना कैसे करता है?
टॉम हेल

पृष्ठभूमि के बजाय टेक्स्ट को रंग देने के लिए प्रिंटफ़ पैटर्न कैसा दिखेगा?
इयानस्टारज

35

मुझे जस्टिन अब्रह्म द्वारा लिखित गीथहब पर एक अच्छी पायथन स्क्रिप्ट मिली, जो रंगों के हेक्स कोड को भी प्रिंट करती है।

स्क्रिप्ट को वर्तमान कार्यशील निर्देशिका में डाउनलोड करें

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

इसे निष्पादित करने की अनुमति दें

chmod +x colortest.py

चलाओ:

./colortest.py

लिंक-रोट के मामले में पूरी स्क्रिप्ट यहाँ है:

#!/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

फिर भी, मेरे द्वारा लिखी गई एक और स्क्रिप्ट, VTE रिपॉजिटरी में स्थित है: https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38

इसमें 120-ईश या अधिक कॉलम की विंडो की आवश्यकता होती है, लेकिन 6x6x6 क्यूब के रंगों को अच्छी तरह से और कॉम्पैक्ट रूप से व्यवस्थित करता है। सूचकांकों के पहले अंक कॉम्पैक्टनेस के लिए छीन लिए जाते हैं, आप उन्हें आसानी से समझ सकते हैं। ऊर्ध्वाधर पट्टियां आपको एंटीएलियासिंग के बिना अग्रभूमि रंग के सटीक आरजीबी की जांच करने की क्षमता प्रदान करती हैं (जैसा कि यह अंकों पर होता है)।

आउटपुट के शीर्ष (नीचे स्क्रीनशॉट में नहीं दिखाया गया है) पागलपन को दर्शाता है जो बोल्ड बनाम उज्ज्वल अस्पष्टता के साथ चारों ओर जाता है, अर्थात्, बोल्डनेस एस्केप सीक्वेंस, अग्रभूमि के लिए 8 रंगों के एस्केप अनुक्रम में से एक के साथ संयुक्त भी स्विच करता है। उज्ज्वल प्रतिरूप रंग, जबकि नई शैली (256-रंग सक्षम) से बचने के क्रम में यह अब ऐसा नहीं है, पहले 8 रंगों के लिए भी नहीं। कम से कम यह है कि xterm और VTE (GNOME टर्मिनल आदि) कैसे व्यवहार करते हैं।

यह स्क्रीनशॉट आउटपुट के आधे हिस्से को दिखाता है:

गनोम टर्मिनल में 256test.sh का आउटपुट


2
curl -s -L https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38 | bash
मास्टरएक्सिलो

6

शायद शानदार लेकिन मैंने एक ऐसा संस्करण लिखा है जो 256 रंगों को प्रिंट करता है जो कि स्वचालित शेल चौड़ाई का पता लगाने के साथ पृष्ठभूमि का उपयोग करता है ताकि रंग अधिक आसानी से दिखाई दे।

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

256 रंग परीक्षण डेमो

#!/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
अगर कोई इस लिपि को एक लाइनर में चलाना चाहता है, तोcurl https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/250eb2e3f2acca1c51aa52adf611ec0380291e8a/colortest.py | python3
टॉमसो थियो सिओनी

मेरा सुझाव हैcurl -s https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/colortest.py | python3
मास्टरएक्सिलो

3

एक लाइनर

पीछे का रंग

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

अग्रभूमि रंग

for i in {0..255}; do printf '\e[38;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.