2012-02-24 41 views
6

我喜歡Perl的Term::ANSIColor模塊,但可以打印出不同於所提供顏色的顏色嗎?在Perl中打印超過ANSI顏色值

我試圖用深紅色和鮮綠色之間的範圍打印出單詞,並在它們之間有相當數量的步驟。有沒有辦法提供RGB值或更改文本顏色?

回答

10

您使用Term::ExtendedColor。 您可以使用該模塊的256種顏色。

+1

值得注意的是,顯示的顏色取決於OP所使用的終端。 – 2012-02-26 07:22:01

1

一些終端甚至接受完整的8位RGB顏色規格。

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

這可能會打印在rgb(255,100,80)粉紅色。取決於您的終端。

,以此來獲得xterm256顏色值出任意RGB的組合,你可能還喜歡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"; 
} 

我會粘貼在這裏輸出,但很難傳達註釋的顏色:)