2012-02-24 11 views
6

Adoro il modulo Term::ANSIColor di Perl ma è possibile stampare colori diversi da quelli forniti?Stampa più di valori ANSI di colore in Perl

Sto provando a stampare parole con un intervallo tra il rosso intenso e il verde intenso, con un discreto numero di passaggi tra di loro. C'è un modo per fornire un valore RGB o qualcosa per cambiare il colore del testo?

risposta

10

Si utilizza Term::ExtendedColor. È possibile utilizzare 256 colori da questo modulo.

+1

Vale la pena notare che i colori visualizzati dipendono dal terminale che l'OP sta usando. –

1

Alcuni terminali accettano anche le specifiche del colore RGB a 8 bit.

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

Questo può essere stampato nel colore rosa rgb(255,100,80). Dipende dal tuo terminale.

Come un modo per ottenere xterm256 valori di colore di combinazioni RGB arbitrarie, come si potrebbe anche 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"; 
} 

avrei incollare l'output qui, ma è difficile trasmettere i colori in un commento :)

Problemi correlati