में कनवर्ट करें मुझे आरजीबी मानों को एचएसवी मानों में परिवर्तित करने के लिए इंटरनेट पर एक विधि मिली है। दुर्भाग्यवश, जब मान आर = जी = बी हैं, तो 0/0 ऑपरेशन के कारण मुझे NaN मिल रहा है।आरजीबी मान को एचएसवी
क्या आप जानते हैं कि जावा में इस रूपांतरण के लिए एक कार्यान्वित विधि है या मुझे क्या करना है जब मुझे 0/0 डिवीजन एचएसवी का सही मूल्य प्राप्त करने के लिए मिलता है?
यहाँ मेरी विधि, इंटरनेट पर कुछ कोड से अनुकूलित आता है:
public static double[] RGBtoHSV(double r, double g, double b){
double h, s, v;
double min, max, delta;
min = Math.min(Math.min(r, g), b);
max = Math.max(Math.max(r, g), b);
// V
v = max;
delta = max - min;
// S
if(max != 0)
s = delta/max;
else {
s = 0;
h = -1;
return new double[]{h,s,v};
}
// H
if(r == max)
h = (g - b)/delta; // between yellow & magenta
else if(g == max)
h = 2 + (b - r)/delta; // between cyan & yellow
else
h = 4 + (r - g)/delta; // between magenta & cyan
h *= 60; // degrees
if(h < 0)
h += 360;
return new double[]{h,s,v};
}
सवाल का वास्तविक जवाब में रुचि किसी के लिए , मेरा मानना है कि आर = जी = बी, एचएसवी = [0,0, आर/255.0]। रंग मनमाने ढंग से है, संतृप्ति 0 है (यह भूरे रंग की छाया है) और मान हालांकि उज्ज्वल आर = जी = बी मान है। – thomas88wp