Perl のTerm::ANSIColor
モジュールが気に入っていますが、提供されている色以外の色を印刷することはできますか?
深い赤と明るい緑の間の範囲で単語を印刷しようとしていますが、その間にかなりの数のステップがあります。テキストの色を変更するために RGB 値または何かを指定する方法はありますか?
Perl のTerm::ANSIColor
モジュールが気に入っていますが、提供されている色以外の色を印刷することはできますか?
深い赤と明るい緑の間の範囲で単語を印刷しようとしていますが、その間にかなりの数のステップがあります。テキストの色を変更するために RGB 値または何かを指定する方法はありますか?
Term::ExtendedColorを使用します。このモジュールでは256色を使用できます。
一部の端末では、完全な 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";
}
ここに出力を貼り付けますが、コメントで色を伝えるのは難しいです:)