] इस लेख में, हम इसे पूरा करने के लिए तीन अलग -अलग तरीकों का पता लगाएंगे:
दूरी मेट्रिक्स
१। ह्यू-केवल तुलना:
2। RGB दूरी:
यह विधि रंगों के RGB मानों के बीच सीधी दूरी को मापती है। रंग अंतर की गणना RGB स्थान में एक यूक्लिडियन दूरी के रूप में की जाती है, और निकटतम रंग इस अंतर को कम करके पाया जाता है।
३। भारित ह्यू, संतृप्ति, और चमक तुलना:
यह विधि एक भारित तरीके से ह्यू, संतृप्ति और चमक को जोड़ती है। कथित चमक की गणना की जाती है, और एक रंग संख्या की गणना संतृप्ति और चमक के आधार पर की जाती है। निकटतम रंग रंग अंतर और ह्यू दूरी के भारित योग को कम करके निर्धारित किया जाता है। int क्लोसेस्टकोलर 1 (सूची रंग, रंग लक्ष्य) { var hue1 = target.gethue (); var diffs = colors.select (n => gethuedistance (n.gethue (), hue1)); var diffmin = diffs.min (n => n); वापसी diffs.tolist ()। findIndex (n => n == diffmin); } // RGB दूरी की तुलना int ClosestColor2 (सूची रंग, रंग लक्ष्य) { var colordiffs = colors.select (n => colordiff (n, लक्ष्य))। मिनट (n => n); रंग लौटें। } // भारित ह्यू, संतृप्ति और चमक तुलना int ClosestColor3 (सूची रंग, रंग लक्ष्य) { फ्लोट hue1 = target.gethue (); var num1 = colornum (लक्ष्य); var diffs = colors.select (n => math.abs (colornum (n) - num1) gethuedistance (n.gethue (), hue1)); var diffmin = diffs.min (x => x); वापसी diffs.tolist ()। findIndex (n => n == diffmin); }
सहायक कार्य
// रंग चमक के रूप में: फ्लोट getBrightness (रंग c) => (C.R * 0.299F C.G * 0.587F C.B * 0.114f) / 256f; // दो hues के बीच की दूरी: फ्लोट गेथ्यूडिस्टेंस (फ्लोट HUE1, फ्लोट HUE2) => Math.abs (Hue1 - Hue2)> 180? 360 - math.abs (hue1 - hue2): math.abs (hue1 - hue2); // संतृप्ति और चमक से तौला गया: फ्लोट कोलोर्नम (रंग c) => c.getSaturation () * कारक getBrightness (c) * फैक्टरब्री; // RGB अंतरिक्ष में दूरी: int colordiff (रंग C1, रंग C2) => (int) Math.sqrt ((C1.R - C2.R) * (C1.R - C2.R) (C1.G - C2.G) * (C1.G - C2.G) (C1.B - C2.B) * (C1.B - C2.B) * (C1.B - C2.B) c2.b)); यदि ह्यू प्राथमिक विचार है, तो ह्यू-केवल तुलना पर्याप्त है। अधिक सामान्य रंग मिलान के लिए, आरजीबी दूरी या भारित ह्यू, संतृप्ति, और चमक तुलना के तरीके अधिक सटीक परिणाम प्रदान करते हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3