2012-02-24 14 views
6

में एएनएसआई रंग मानों से अधिक प्रिंट करें मुझे पर्ल के Term::ANSIColor मॉड्यूल से प्यार है, लेकिन क्या उपलब्ध कराए गए रंगों के अलावा अन्य रंग प्रिंट करना संभव है?पर्ल

मैं गहरे लाल और उज्ज्वल हरे रंग के बीच एक श्रृंखला के साथ शब्दों को मुद्रित करने की कोशिश कर रहा हूं, उनके बीच एक सभ्य संख्या के साथ। क्या आरजीबी मूल्य या पाठ के रंग को बदलने के लिए कुछ आपूर्ति करने का कोई तरीका है?

उत्तर

10

आप Term::ExtendedColor का उपयोग करते हैं। आप इस मॉड्यूल द्वारा 256 रंगों का उपयोग कर सकते हैं।

+1

यह ध्यान देने योग्य है कि प्रदर्शित रंग ओपी का उपयोग कर रहे टर्मिनल पर निर्भर हैं। –

1

कुछ टर्मिनल भी पूर्ण 8-बिट आरजीबी रंग विनिर्देश स्वीकार करते हैं।

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

यह rgb(255,100,80) रंग गुलाबी में मुद्रित किया जा सकता है। आपके टर्मिनल पर निर्भर करता है।

एक तरह से मनमाने ढंग से आरजीबी संयोजन से बाहर 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"; 
} 

मैं उत्पादन यहाँ पेस्ट करता हूँ पसंद कर सकते हैं, लेकिन यह एक टिप्पणी में रंग देते मुश्किल है :)