2017-04-16 20 views
5

में उज्ज्वल करने के लिए काले रंग को बदलना मैं एक ऐसे कार्यक्रम पर काम कर रहा हूं जहां मैं छवि के एक भाग से आरजीबी मूल्य लेता हूं। मैं रंग में अंधेरे को हटाना चाहता हूं और इसे उज्ज्वल बनाना चाहता हूं। मैं क्या करता हूं मैं Color.RGBtoHSB का उपयोग करता हूं, फिर मैं चमक चैनल लेता हूं और इसे उच्चतम मान पर सेट करता हूं जो कि सीमा में हो सकता है और फिर एचएसबी को आरजीबी में परिवर्तित कर सकता है। हालांकि, जब मैं ऐसा करता हूं तो रंग पूरी तरह से बदल जाता है। यहां एक गहरा लाल रंग का उदाहरण है और यह बैंगनी हो रहा है और कोड जो मैं इसे करने के लिए उपयोग करता हूं।जावा

System.out.println("Before Conversion:"); 
System.out.println("R: " + rAvg + "\nG :" + gAvg + "\nB :" + bAvg); 
Color.RGBtoHSB(rAvg, gAvg, bAvg, hsv); 

hsv[2] = 100; //Set to max value 
System.out.println("H: " + hsv[0] * 360 + "\nS: " + hsv[1] * 100 + "\nV :" + hsv[2]); 

int rgb = Color.HSBtoRGB(hsv[0], hsv[1], hsv[2]); 
System.out.println("After conversion"); 
Color color = new Color(rgb); 
System.out.println("R: " + color.getRed()); 
System.out.println("G: " + color.getGreen()); 
System.out.println("B: " + color.getBlue()); 

आउटपुट:

Before Conversion: 
R: 128 
G :39 
B :50 
H: 352.58426 
S: 69.53125 
V :100.0 
After conversion 
R: 158 
G: 126 
B: 233 

उत्तर

2

चमक, hsv[2], एक मूल्य की जरूरत है 0 और कोड के इन दो पंक्तियों का प्रयास के बीच 1.: जादू की तरह

hsv[2] = 1; //Set to max value 
    System.out.println("H: " + hsv[0] * 360 + "\nS: " + hsv[1] * 100 + "\nV :" + hsv[2] * 100); 
+0

काम करता है। मुझे सही विचारों का सही विचार था:/यह थोड़ा परेशान है। सहायता के लिए धन्यवाद :) – cuber