यह सर्दियों का मौसम है, और साल का समय आ गया है कि ठंड शुरू हो जाए (और अजीब रंगीन हेडक्लॉथ दिखाई देने लगे ... जल्द ही)। आइये अवतार चित्र और अन्य चित्र बनाने के लिए कुछ कोड लिखें, ताकि विषय को फिट किया जा सके!
इनपुट
इस चुनौती को प्रस्तुत करने के लिए इनपुट एक छवि (जमे हुए बनाने के लिए छवि) और एक संख्या (दहलीज, जिसे बाद में समझाया जाएगा) होना चाहिए।
आप किसी भी तरह से छवि का इनपुट कर सकते हैं, आपकी भाषा उनका समर्थन करती है (एक फ़ाइल पथ या URL एक तर्क के रूप में, इसे क्लिपबोर्ड से लेना, एक छवि को खींचना और छोड़ना, आदि) और यहां सूचीबद्ध किसी भी प्रारूप में आरजीबी में रंग व्यक्त करता है (आप यदि आप चाहें तो RGBA का समर्थन / आवश्यकता कर सकते हैं, लेकिन यह आवश्यकता नहीं है)।
आप किसी भी तरह से नंबर को इनपुट कर सकते हैं (जैसे कि कमांड लाइन तर्क, एसटीडीआईएन, इनपुट डायलॉग, आदि), हार्डकॉडिंग के अपवाद के साथ इसे अपने प्रोग्राम (पूर्व n=10
) में करें। यदि आप छवि के लिए फ़ाइल पथ / URL का उपयोग करते हैं, तो इसे इस तरीके से भी इनपुट होना चाहिए।
उत्पादन
कार्यक्रम को नीचे दिए गए विवरण के अनुसार छवि को संसाधित करना होगा और फिर इसे किसी भी तरह से आउटपुट करना होगा (एक फ़ाइल में, इसे स्क्रीन पर दिखाते हुए, इसे क्लिपबोर्ड पर रखकर, आदि)।
विवरण
सबमिशन को निम्नलिखित तीन चरणों के साथ छवि को संसाधित करना चाहिए। n
उस संख्या को संदर्भित करता है जिसे आपके प्रोग्राम को छवि के साथ इनपुट के रूप में प्राप्त हुआ है।
n
प्रत्येक पिक्सेल के R, G, और B मानों की औसत R, G और B मानों के साथ पिक्सेल के मैनहट्टन दूरी के भीतर सभी पिक्सेल के रिप्लेसमेंट द्वारा त्रिज्या का एक धब्बा लागू करेंn
, सभी आउट-ऑफ-बाउंड्स निर्देशांक को अनदेखा करते हुए। (यानी सभी पिक्सेल जहां X में अंतर और Y में अंतर से कम या इसके बराबर हैn
।)(ध्यान दें: मैंने ऊपर की छवियों के लिए एक गाऊसी ब्लर का उपयोग किया था क्योंकि इसके लिए एक सुविधाजनक अंतर्निहित फ़ंक्शन था, इसलिए आपकी छवियां थोड़ी अलग दिख सकती हैं।)
पिक्सेल की दूरी के भीतर प्रत्येक पिक्सेल को एक यादृच्छिक पिक्सेल पर सेट करें
n/2
("दूरी" को पिछले चरण की तरह ही परिभाषित किया गया है)।यह छवि के माध्यम से लूपिंग और प्रत्येक पिक्सेल को इस रेंज में एक यादृच्छिक पिक्सेल पर सेट करने के लिए किया जाना चाहिए, इसलिए कुछ पिक्सेल पूरी तरह से गायब हो सकते हैं और कुछ डुप्लिकेट हो सकते हैं।
सभी परिवर्तन एक ही समय में लागू होने चाहिए। दूसरे शब्दों में, पिक्सेल के पुराने मानों का उपयोग करें (चरण 1 के बाद लेकिन इस चरण से पहले), उन्हें यादृच्छिक पिक्सेल पर सेट करने के बाद नए मान नहीं।
प्रत्येक पिक्सेल के "ब्लू" RGB मान को 1.5 से गुणा करें, इसे 255 पर कैपिंग करें (या पिक्सेल के बैंड के लिए अधिकतम मान जो भी हो) और नीचे राउंडिंग।
नियम
आप अपनी भाषा में निर्मित छवि पुस्तकालयों / छवि प्रसंस्करण से संबंधित कार्यों का उपयोग कर सकते हैं; हालाँकि, आप वर्णन में वर्णित तीन प्रमुख कार्यों में से एक का प्रदर्शन करने वाले किसी भी कार्य का उपयोग नहीं कर सकते हैं। उदाहरण के लिए, आप किसी
blur
फ़ंक्शन का उपयोग नहीं कर सकते , लेकिन एकgetPixel
फ़ंक्शन ठीक है।यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीतता है!
dx <= n && dy <= n
मैनहट्टन दूरी का एक सटीक प्रतिनिधित्व है, है ना?