2012-02-24 17 views
6

PerlのTerm::ANSIColorモジュールが大好きですが、提供されている色以外の色を印刷することは可能ですか?PerlのANSIカラー値以上の印刷

濃い赤色と鮮やかな緑色の間に適切な数の段差がある単語を印刷しようとしています。テキストの色を変更するためにRGB値などを指定する方法はありますか?

答えて

10

Term::ExtendedColorを使用します。 このモジュールでは256色を使用できます。

+1

表示される色は、OPが使用している端末によって異なることに注意してください。 –

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"; 
} 

のように私はここに出力を貼り付けたいかもしれませんが、それはコメントに色を伝えるのは難しいです:)

関連する問題