6

我喜欢 Perl 的Term::ANSIColor模块,但是否可以打印出提供的颜色以外的颜色?

我正在尝试打印出范围在深红色和亮绿色之间的单词,它们之间有相当多的步数。有没有办法提供 RGB 值或改变文本颜色的东西?

4

2 回答 2

11

您使用Term::ExtendedColor。您可以通过此模块使用 256 种颜色。

于 2012-02-24T09:01:49.183 回答
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";
}

我会在此处粘贴输出,但很难在评论中传达颜色:)

于 2012-02-27T13:56:09.777 回答