कलर पैलेट एक्सट्रैक्टर
इमेज अपलोड करें और उसे असल में परिभाषित करने वाले रंग निकालें. किसी भी स्वॉच पर क्लिक करके उसका hex कोड कॉपी करें.
इमेज चुनने के लिए क्लिक करें, या उसे यहां खींचकर लाएं
पेस्ट (Ctrl+V) से भी काम करता है. आपकी डिवाइस पर ही रहती है, कुछ भी अपलोड नहीं होता.
यह कैसे काम करता है
रंग सीधे आपकी इमेज से canvas API का इस्तेमाल करके सैंपल किए जाते हैं और समानता के आधार पर ग्रुप किए जाते हैं. कुछ भी अपलोड नहीं होता, सब कुछ आपके ब्राउज़र में होता है.
यह कैसे काम करता है
आपकी इमेज को एक छिपे कैनवस पर, ज़्यादा से ज़्यादा 200 पिक्सल तक छोटा करके रेंडर किया जाता है, क्योंकि छोटी इमेज असली जैसा ही कलर डिस्ट्रीब्यूशन रखती है और हज़ारों गुना तेज़ पढ़ी जाती है. getImageData() से रॉ RGBA डेटा निकलता है, और आधे से ज़्यादा ट्रांसपेरेंट कोई भी पिक्सल छोड़ दिया जाता है. बचा हर पिक्सल हर चैनल के 6 लेवल वाले एक मोटे ग्रिड में गिरता है, यानी कुल 216 बकेट, और हर बकेट असली वैल्यूज़ का जोड़ रखता है. बकेट को पिक्सल काउंट से सॉर्ट किया जाता है, टॉप N बकेट जीतते हैं, और हर स्वैच अपने बकेट के असली पिक्सल का औसत है, बकेट का सेंटर नहीं, जिससे नतीजे नकली-ग्रेडिएंट जैसे नहीं दिखते.
इस तरीके की एक ईमानदार सीमा यह है: यह इंपोर्टेंस नहीं, एरिया नापता है. बेज दीवार के सामने खड़े किसी पोर्ट्रेट में सब्जेक्ट की नीली जैकेट का ज़िक्र आने से पहले बेज के पांच शेड्स मिलेंगे, क्योंकि दीवार में बस ज़्यादा पिक्सल हैं. अगर आपको डॉमिनेंट रंगों की बजाय एक्सेंट रंग चाहिए, तो कलर काउंट बढ़ाएं और लिस्ट के आखिर की तरफ देखें, या अपलोड करने से पहले इमेज को उस हिस्से तक क्रॉप कर लें जो मायने रखता है.
इमेज कभी आपकी डिवाइस से बाहर नहीं जाती: यह एक लोकल ऑब्जेक्ट URL से लोड होती है, मेमोरी में कैनवस पर रेंडर होती है, और बाइट्स के रूप में पढ़ी जाती है, यह सब इस पेज के जावास्क्रिप्ट में होता है. यहां कोई अपलोड स्टेप है ही नहीं जिसे इंटरसेप्ट किया जा सके, और रंग निकालते समय नेटवर्क टैब खाली रहता है.
सामान्य प्रश्न
क्या मेरी इमेज कहीं अपलोड होती है?
नहीं. हर पिक्सेल canvas API का इस्तेमाल करके लोकली पढ़ा जाता है. कुछ भी सर्वर पर नहीं भेजा जाता.
रंग कैसे चुने जाते हैं?
पिक्सेल को समानता के आधार पर बकेट में बांटा जाता है, और सबसे आम बकेट आपका पैलेट बनते हैं, जो हर बकेट में आए असली पिक्सेल के औसत से बनते हैं.
मेरी उम्मीद के मुताबिक़ रंग बिल्कुल मेल क्यों नहीं खाते?
बहुत छोटे या पतले डीटेल अगर इमेज का ज़्यादा हिस्सा नहीं कवर करते तो वे औसत में दब सकते हैं. ज़्यादा डीटेल पकड़ने के लिए रंगों की संख्या बढ़ाकर देखें.