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 に答える