2012-02-24 51 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"; 
} 

我会粘贴在这里输出,但很难传达注释的颜色:)