2012-02-24 12 views
6

Me encanta el módulo Term::ANSIColor de Perl, pero ¿es posible imprimir colores distintos a los proporcionados?Imprimir más que los valores de color ANSI en Perl

Estoy tratando de imprimir palabras con un rango entre rojo oscuro y verde brillante, con un número decente de pasos entre ellas. ¿Hay alguna manera de proporcionar un valor RGB o algo para cambiar el color del texto?

Respuesta

10

Utiliza Term::ExtendedColor. Puede usar 256 colores con este módulo.

+1

Vale la pena señalar que los colores mostrados dependen del terminal que utiliza el OP. –

1

Algunos terminales incluso aceptan especificaciones de color RGB de 8 bits.

$ perl -E 'say "\e[38:2:255:100:80mHello\e[m"' 
Hello 

Esto se puede imprimir en rgb(255,100,80) color rosa. Depende de tu terminal.

Como una manera de obtener xterm256 valores de color RGB de combinaciones arbitrarias, también al igual que Convert::Color

use strict; 
use warnings; 

use Convert::Color; 
use Convert::Color::XTerm; 

foreach my $hue (map { $_ * 15 } 0 .. 120/15) { 
    my $c = Convert::Color->new("hsv:$hue,1,1"); 
    my $index = $c->as_xterm->index; 
    print "\e[38:5:${index}mHue=$hue\e[m\n"; 
} 

Me pega el resultado aquí pero es difícil de transmitir los colores en un comentario :)

Cuestiones relacionadas