रूबिक के क्यूब और कूल आर्ट का बहुत बड़ा प्रशंसक होने के नाते, मैं दोनों के साथ मिलकर कुछ बहुत अच्छा काम कर रहा हूं। मूल रूप से रुबिक की क्यूब कला के निर्माण में अल्पविकसित पिक्सेल बनाने के लिए लघु रूबिक के क्यूब्स को हल करना। इस लिंक के माध्यम से ऐसी कला के उदाहरण देखे जा सकते हैं: http://google.com/search?q=rubik%27s+cube+art
अब, इस कोड गोल्फ का उद्देश्य एक ऐसा कोड बनाना है जो किसी छवि को इनपुट के रूप में स्वीकार करता है, और फिर उसे निम्नलिखित तरीके से परिवर्तित करता है:
छवि को शुरू में वेब-सुरक्षित ग्रेस्केल रंगों में घटाया गया है। इसके पीछे का कारण यह है कि हमें वेब-सुरक्षित ग्रेस्केल पैलेट (यानी 000000, 333333, 666666, 999999, CCCCCC, और FFFFFF) को अलग करना होगा। ग्रेस्केल में परिवर्तित करने की वर्णमिति पद्धति पर एक एल्गोरिथ्म उपलब्ध है: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.2STuminance-presinating.29_conversion_bgrcc , क्या आपको प्रेरणा के रूप में उपयोग करना चाहिए।
एक तब ग्रेस्केल को उपयुक्त रंगों में प्रस्तुत करेगा। इसे जल्दी से तोड़ने के लिए: 000000 रुबिक के नीले को संदर्भित करेगा, 333333 रूबिक के लाल को संदर्भित करेगा, 666666 रूबिक के हरे को संदर्भित करेगा, 999999 रुबिक के नारंगी को संदर्भित करेगा, CCCCCC रुबिक के पीले को संदर्भित करेगा, और FFFFFF रूबिक के सफेद को संदर्भित करेगा।
मैं बल्कि यह चाहता हूं कि आपका परिणामी कोड फोटो के पैलेट से सीधे रूबिक के रंगों में रेंडर हो सके। वेब-सुरक्षित ग्रेस्केल और फिर रूबिक के पैलेट में परिवर्तित होने से दो-चरण की विधि आपको प्रक्रिया के पीछे के तर्क पर एक विचार देने के लिए है, लेकिन अगर आपके लिए ऐसा करना आसान है, तो हर तरह से।
रूबिक के पैलेट के लिए वास्तविक आरजीबी मान निम्नलिखित के अनुरूप होना चाहिए:
- लाल: # C41E3A
- हरा: # 009E60
- नीला: # 0051BA
- नारंगी: # FF5800
- पीला: # FFD500
- सफ़ेद: # फाफ
आपको एक उदाहरण देने के लिए, मैंने अब्राहम लिंकन के सिर को निम्न चित्र से काट दिया है: और निम्नलिखित को उत्पन्न करने के लिए एल्गोरिथ्म का प्रतिपादन किया:
ग्रिड वहाँ है ताकि आप देख सकें कि प्रत्येक व्यक्ति लघु रुबिक के क्यूब को छवि बनाने के लिए कैसे कॉन्फ़िगर करना होगा। परिणामी छवि का सही आकार 45 पिक्सेल 45 पिक्सेल है, जिसका अर्थ है (45/3) * (45/3) = 15 * 15 = 225 लघु रुबिक के क्यूब्स का उपयोग इस छवि को बनाने के लिए किया जाएगा। मुझे आपसे अपेक्षा नहीं है कि परिणामी छवि को एक ग्रिड के रूप में प्रस्तुत करूंगा जैसा कि मेरे पास है।
तो यह वही है जो आवश्यक है:
इस एल्गोरिथ्म द्वारा संसाधित की जाने वाली छवि y पिक्सेल से x पिक्सेल चौड़ी होनी चाहिए, जैसे कि x और y 3. के गुणक हैं। यह रूबिक क्यूब मोज़ेक के भाग के रूप में प्रदान करने में आसानी के साथ सहायता करता है। यदि आपकी छवि काफी बड़ी है, तो इसे 45 x 45 से 75 x 75 के आसपास किसी चीज़ में कम करना या प्रसंस्करण से पहले आयामों में उपचार की सलाह दी जाती है। ध्यान रखें, यह आकार देने वाला घटक वैकल्पिक है।
मोज़ेक बनाने के लिए छवि को sextacolored Rubik's cube पैलेट में बदलना होगा।
परिणामी छवि को प्रसंस्करण के बाद एक वैध ग्राफिक फ़ाइल होना चाहिए। अपने कोड कार्यों को साबित करने के लिए, इसे संयुक्त राज्य अमेरिका के राष्ट्रपति के एक छवि, या एक प्रसिद्ध हॉलीवुड सेलिब्रिटी के खिलाफ चलाएं। मैंने पहले ही अपने उदाहरण में अब्राहम लिंकन का उपयोग किया है, इसलिए इस राष्ट्रपति का अब उपयोग नहीं किया जा सकता है। सुनिश्चित करें कि आपने जो भाषा प्रयोग की है, बाइट की गिनती के साथ-साथ अध्यक्ष / सेलिब्रिटी को आपके कोड का परीक्षण करने से पहले और बाद के शॉट्स सहित ...
प्रत्येक प्रविष्टि के पास उनके परीक्षण मामले के रूप में एक अद्वितीय अध्यक्ष / सेलिब्रिटी होना चाहिए। मैं डुप्लिकेट को स्वीकार नहीं करूंगा। यह सुनिश्चित करेगा कि विभिन्न कोड प्रविष्टियों का परीक्षण करने के लिए डुप्लिकेट परिणामों का उपयोग नहीं किया जाता है। यह कहना बहुत अच्छा है कि आपका कोड काम करता है, यह साबित करने के लिए एक और बात है।
5. सबसे छोटा कोड जीतता है।
मैं इसे एक लोकप्रियता प्रतियोगिता में बदल रहा हूं ... मैं देखूंगा कि बाइट काउंट पर प्रतिस्पर्धा किए बिना कौन ऐसा कर सकता है ... इसलिए मैं इसे 28 फरवरी, 2014 के बाद इनाम के साथ पुरस्कार दूंगा।
#000000 => #0051BA
, आदि जोड़ सकते हैं