मैं रंगों की एक अनिर्दिष्ट संख्या के औसत को खोजने का एक तरीका ढूंढ रहा हूं। मैंने ऐसा करने के लिए एक रास्ता तलाशने में काफी समय बिताया। सबसे पहले मैंने अपने रंगों को सीएमवाईके में बदलने और उन्हें औसत करने की कोशिश की, लेकिन इससे मुझे अपेक्षित नतीजे नहीं मिले। तब मैंने देखा कि कई अलग-अलग स्थानों में, रंगों को सीआईई एल * ए * बी * स्पेस में परिवर्तित करना और फिर औसत करना यह करने का पसंदीदा तरीका है। इसलिए मैंने देखा कि आरजीबी रंगों को एलएबी स्पेस में कैसे परिवर्तित किया जाए और ऐसा करने के लिए जावास्क्रिप्ट को आवश्यक एल्गोरिदम में परिवर्तित किया जाए।मुझे एन रंगों का औसत कैसे मिल सकता है?
अब जब कि मैं प्रयोगशाला अंतरिक्ष में अपना रंग, मैंने सोचा कि यह मेरे रंग की औसत खोजने के रूप में सरल हो सकता है, तो मैं चाल करने के लिए इस समारोह ने लिखा है:
color.mixRGB = function() {
var cols = Array.prototype.slice.call(arguments),
i = cols.length,
lab = {l: 0, a: 0, b: 0};
while(i--) {
if (typeof cols[i].r === "undefined" && typeof cols[i].g === "undefined" && typeof cols[i] === "undefined") {
console.log("Not enough parameters supplied for color " + i + ".");
return;
}
if(cols[i].r === 0 && cols[i].g === 0 && cols[i].b === 0) {
cols.splice(i, 1);
} else {
cols[i] = color.RGBtoLAB(cols[i]);
lab.l += cols[i].l;
lab.a += cols[i].a;
lab.b += cols[i].b;
}
}
lab.l /= cols.length;
lab.a /= cols.length;
lab.b /= cols.length;
return color.LABtoRGB(lab);
};
अगर मैं प्रवेश आरजीबी (255, 0, 0) और आरजीबी (0, 0, 255) फ़ंक्शन में, मुझे आरजीबी (202, -59, 136) मिलता है। यह रंग रंग हेक्सा का कहना है कि उन दो आरजीबी का औसत है, जो आरजीबी (128, 0, 128), ए.के.ए. बैंगनी है।
मैं वापस अपने सभी कोड पर चला गया, और अब तक मैं निर्धारित करने के लिए है कि समस्या डबल और उन्हें Color Hexa और EasyRGB के खिलाफ ट्रिपल जाँच करके मेरी रूपांतरण एल्गोरिदम से किसी के साथ झूठ नहीं करता है प्रबंधित किया है। इसका मतलब है या तो ए) इस मुद्दे को झूठ बोलना चाहिए कि मैं रंगों का औसत कैसे कर रहा हूं या बी) मुझे गलत जानकारी मिली है और मुझे सीआईई एल * ए * बी * स्पेस में रंगों को मिश्रण करने का प्रयास नहीं करना चाहिए।
मुझे वास्तव में क्या याद आ रहा है? मेरे वर्तमान एल्गोरिदम का उपयोग करके, औसत आरजीबी (255, 0, 0) और आरजीबी (0, 0, 255) औसत क्यों नहीं है जो मुझे रंग हेक्सा (या यहां तक कि दृश्य अनुमान) प्रदान करता है? (here's a fiddle मेरी समस्या का)
एक रंगीन स्थान में औसत एक अलग रंग स्थान में औसत के समान नहीं है। एक ही परिणाम की उम्मीद नहीं करेगा। –
मैं समझता हूं; यह प्रासंगिक क्यों है? –
क्योंकि आप आश्चर्यचकित हैं कि आप अलग-अलग परिणाम प्राप्त कर रहे हैं;) (हालांकि संभवतः मैं चीजों को गलत तरीके से पढ़ रहा हूं ...) –