2012-02-24 31 views
6

Tôi thích mô-đun Term::ANSIColor của Perl nhưng có thể in ra các màu khác với màu được cung cấp không?In nhiều hơn các giá trị màu ANSI trong Perl

Tôi đang cố gắng in các từ có phạm vi giữa màu đỏ đậm và xanh lục sáng, với số bước phong phú giữa chúng. Có cách nào để cung cấp một giá trị RGB hoặc một cái gì đó để thay đổi màu sắc của văn bản?

Trả lời

10

Bạn sử dụng Term::ExtendedColor. Bạn có thể sử dụng 256 màu theo mô-đun này.

+1

Cần lưu ý rằng các màu được hiển thị phụ thuộc vào thiết bị đầu cuối mà OP đang sử dụng. –

1

Một vài thiết bị đầu cuối thậm chí chấp nhận thông số kỹ thuật màu RGB 8 bit đầy đủ.

$ perl -E 'say "\e[38:2:255:100:80mHello\e[m"' 
Hello 

Điều này có thể được in ở rgb(255,100,80) màu hồng. Phụ thuộc vào thiết bị đầu cuối của bạn.

Như một cách để có được giá trị màu xterm256 ra khỏi tổ hợp RGB tùy ý, bạn cũng có thể thích 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"; 
} 

Tôi muốn dán đầu ra ở đây nhưng thật khó để truyền đạt các màu sắc trong một chú thích :)

Các vấn đề liên quan