Esempio n. 1
0
File: rgb.py Progetto: tehmaze/ansi
def rgb256(r: int, g: int, b: int) -> str:
    """
    Convert an RGB colour to 256 colour ANSI graphics.

    Finds the closest color within the 256 color palette to a given RGB value.
    """
    grey = False
    poss = True
    step = 2.5

    while poss:  # As long as the colour could be grey scale
        if r < step or g < step or b < step:
            grey = r < step and g < step and b < step
            poss = False

        step += 42.5

    if grey:
        colour = 232 + int(float(sum([r, g, b]) / 33.0))
    else:
        colour = sum([16] + [
            int(6 * float(val) / 256) * mod
            for val, mod in ((r, 36), (g, 6), (b, 1))
        ])

    return sequence('m', fields=3)(38, 5, colour)
Esempio n. 2
0
def rgb_reduce(r, g, b, mode=8):
    '''
    Convert an RGB colour to 8 or 16 colour ANSI graphics.
    '''
    colours = ANSI_COLOURS[:mode]
    matches = [(rgb_distance(c, map(int, [r, g, b])), i)
               for i, c in enumerate(colours)]
    matches.sort()
    return sequence('m')(str(30 + matches[0][1]))
Esempio n. 3
0
def rgb_reduce(r, g, b, mode=8):
    '''
    Convert an RGB colour to 8 or 16 colour ANSI graphics.
    '''
    colours = ANSI_COLOURS[:mode]
    matches = [(rgb_distance(c, map(int, [r, g, b])), i)
        for i, c in enumerate(colours)]
    matches.sort()
    return sequence('m')(str(30 + matches[0][1]))
Esempio n. 4
0
File: rgb.py Progetto: tehmaze/ansi
def rgb_reduce(r: int, g: int, b: int, mode: int = 8) -> str:
    """
    Convert an RGB colour to 8 or 16 colour ANSI graphics.

    Finds the closest color within the 8 or 16 color palette to a given RGB value.
    """
    assert mode in (8, 16), 'Mode has to be 8 or 16, got %r instead.' % mode
    colours = ANSI_COLOURS[:mode]
    matches = [(rgb_distance(c, (r, g, b)), i) for i, c in enumerate(colours)]
    matches.sort()
    return sequence('m')(str(30 + matches[0][1]))
Esempio n. 5
0
def rgb256(r, g, b):
    '''
    Convert an RGB colour to 256 colour ANSI graphics.
    '''
    grey = False
    poss = True
    step = 2.5

    while poss: # As long as the colour could be grey scale
        if r < step or g < step or b < step:
            grey = r < step and g < step and b < step
            poss = False

        step += 42.5

    if grey:
        colour = 232 + int(float(sum([r, g, b]) / 33.0))
    else:
        colour = sum([16] + [int (6 * float(val) / 256) * mod
            for val, mod in ((r, 36), (g, 6), (b, 1))])

    return sequence('m', fields=3)(38, 5, colour)
Esempio n. 6
0
def rgb256(r, g, b):
    '''
    Convert an RGB colour to 256 colour ANSI graphics.
    '''
    grey = False
    poss = True
    step = 2.5

    while poss:  # As long as the colour could be grey scale
        if r < step or g < step or b < step:
            grey = r < step and g < step and b < step
            poss = False

        step += 42.5

    if grey:
        colour = 232 + int(float(sum([r, g, b]) / 33.0))
    else:
        colour = sum([16] + [
            int(6 * float(val) / 256) * mod
            for val, mod in ((r, 36), (g, 6), (b, 1))
        ])

    return sequence('m', fields=3)(38, 5, colour)
#pylint: disable=C0103

from ansi.sequence import sequence

# Cursor movement
up = sequence('A')
down = sequence('B')
forward = sequence('C')
back = sequence('D')
next_line = sequence('E')
prev_line = sequence('F')
goto_x = sequence('H')
goto = sequence('G', 2)
erase = sequence('J')
erase_data = erase
erase_line = sequence('K')
scroll_up = sequence('S')
scroll_down = sequence('T')
save_cursor = sequence('s')
load_cursor = sequence('u')
Esempio n. 8
0
 def __init__(self, *values: Union[str, "Graphic"]) -> None:
     self.values = values
     self.sequence = sequence('m', fields=-1)(*values)
Esempio n. 9
0
def colour256(colour):
    """Generate a 256 colour escape.
    This method takes a 256 colour code rather than taking 'true colour' and estimating it.
    """
    seq = sequence('m', fields=3)(38, 5, colour)
    return f'\001{seq}\002'
Esempio n. 10
0
 def __init__(self, *values):
     self.values = values
     self.sequence = sequence('m', fields=-1)(*values)
Esempio n. 11
0
File: base.py Progetto: tehmaze/ansi
 def __init__(self, *values):
     self.values = values
     self.sequence = sequence("m", fields=-1)(*values)
Esempio n. 12
0
#pylint: disable=C0103

from ansi.sequence import sequence


# Cursor movement
up          = sequence('A')
down        = sequence('B')
forward     = sequence('C')
back        = sequence('D')
next_line   = sequence('E')
prev_line   = sequence('F')
goto_x      = sequence('H')
goto        = sequence('G', 2)
erase       = sequence('J')
erase_data  = erase
erase_line  = sequence('K')
scroll_up   = sequence('S')
scroll_down = sequence('T')
save_cursor = sequence('s')
load_cursor = sequence('u')