我喜欢Perl的Term::ANSIColor
模块,但是可以打印出除提供的颜色以外的其他颜色吗?
我正在尝试打印深红色和亮绿色之间的范围,并且它们之间有相当多的步数。有没有办法提供RGB值或其他东西来改变文本的颜色?
答案 0 :(得分:10)
您使用Term::ExtendedColor。 您可以使用此模块使用256种颜色。
答案 1 :(得分:1)
有些终端甚至可以接受完整的8位RGB颜色规格。
$ perl -E 'say "\e[38:2:255:100:80mHello\e[m"'
Hello
这可以用rgb(255,100,80)
粉红色打印。取决于您的终端。
作为从任意RGB组合中获取xterm256颜色值的一种方法,您可能也喜欢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";
}
我会在此处粘贴输出,但很难在评论中传达颜色:)