कार्य
एक प्रोग्राम या फ़ंक्शन लिखें जो चौड़ाई w
और ऊंचाई की एक छवि लेता है h
, और दो पूर्णांक a <= w/2
और b <= h/2
, आयाम a
x के साथ छवि के एक एएससीआई कला प्रतिनिधित्व को आउटपुट करता है b
।
एससीआई कला को निम्न चरणों के माध्यम से उत्पन्न किया जाना चाहिए (या उसी आउटपुट के साथ एक और प्रक्रिया):
आकार बदलें
w
एक्सh
के लिए छवि2a
एक्स2b
।(x, y)
आकार के आकार में पिक्सेल का रंग निम्नलिखित कोनों के साथ आयत के अंदर मूल छवि से सभी पिक्सेल के रंगों के औसत के बराबर होना चाहिए:(floor[x * w/2a], floor[y * h/2b]) (ceil[(x+1) * w/2a], ceil[(y+1) * h/2b])
आकार की छवि को लाल, हरे और नीले रंग के घटकों के औसत से हटाकर, प्रत्येक घटक को इस औसत पर सेट करके लिया जाना चाहिए।
नीचे दिए गए नियमों का पालन करते हुए, पिक्सेल के प्रत्येक 2x2 ब्लॉक के लिए एक चरित्र का उत्पादन किया जाना चाहिए:
- चलो
e = 3 - floor[color/64]
, जहां रंग शीर्ष-बाएँ पिक्सेल के रंग के लाल घटक को संदर्भित करता है (सीमा 0..255 में)। आइएf
,g
औरh
इस मान को देखें, लेकिन क्रमशः ऊपर-दाएं, नीचे-बाएँ और नीचे-दाएँ पिक्सेल के लिए। - आज्ञा देना
z
की औसत होe
,f
,g
,h
। - निम्न के अनुरूप वर्ण को आउटपुट करें (सफेद एक पिक्सेल का प्रतिनिधित्व करता है जहां
3 - floor[color/64]
शून्य है, और ग्रे नॉनज़रो का प्रतिनिधित्व करता है)। - = एक स्थान आउटपुट (
)
- या = आउटपुट
"
यदिe (or f) >= 2
और'
अन्यथा। - या = आउटपुट
,
यदिg (or h) >= 2
और.
अन्यथा। - या = आउटपुट
-
- या = आउटपुट
;
- = आउटपुट
\
- = आउटपुट
/
- = आउटपुट
J
- = आउटपुट
L
- = आउटपुट
7
- = आउटपुट
P
-
z = 1
: आउटपुट*
।z = 2
: आउटपुटC
।z = 3
: आउटपुट#
।
- चलो
अन्य नोट: उपरोक्त चरणों में लिए गए सभी औसत पूर्णांक विभाजन (यानी 0 की ओर गोल) का उपयोग करना चाहिए।
आप छवियों को पढ़ने के लिए एक पुस्तकालय का उपयोग कर सकते हैं, लेकिन पुस्तकालयों का उपयोग रीसाइज़िंग और डीसैचुरेशन चरणों के लिए नहीं किया जा सकता है।
इनपुट
आपका कार्यक्रम डेटा के तीन टुकड़ों में ले जाएगा:
- एक छवि। यह चित्र आपकी पसंद के किसी भी प्रारूप में हो सकता है (जैसे PNG, PPM)
- अस्सी कला की चौड़ाई (वर्णों की संख्या में)
- अस्सी कला की ऊंचाई (पात्रों की संख्या में)
इनपुट STDIN के माध्यम से पढ़ा जा सकता है, एक कमांड-लाइन तर्क के रूप में पारित किया जाता है, एक चर के रूप में संग्रहीत किया जाता है, आदि।
उत्पादन
आपका कार्यक्रम छवि से उत्पन्न एस्की कला का उत्पादन करेगा और ऊपर वर्णित प्रक्रिया के माध्यम से। प्रत्येक पंक्ति समान चौड़ाई (इनपुट के रूप में पारित की गई चौड़ाई) होनी चाहिए, और कोई अतिरिक्त स्थान जोड़ा या हटाया नहीं जा सकता है। अंतिम पंक्ति में अनुवर्ती नई रेखा हो सकती है, लेकिन यह अनिवार्य नहीं है। रिक्त लाइनें (केवल रिक्त स्थान वाली लाइनें) को छोड़ा नहीं जाना चाहिए।
उदाहरण
सभी चित्र विकिपीडिया से लिए गए और सार्वजनिक डोमेन में जारी किए गए। आपका कार्यक्रम सभी छवियों और मान्य इनपुट के लिए काम करने की उम्मीद है।
चौड़ाई = 52, ऊंचाई = 25:
.-- *** - ---- - ********** एल .-- .-- 7 ---- पी- ।जे****************। । ********* \। , ****************** L \ J ********** '। - ********************। जम्मू *********** एल / जे*********************; ./*************.L ; ********************* पी.जे. **************; 7; । *************************************; ;********************** ;***************;जे*। *********************************** सी *************************************** सी ********************** जे *****************; सी*********************; **************** **। ********************** '***************** जे ************************************* । ; ******************** C "'P *********** "7 ****************** C" '********** P। ** C; '* सी *************'; ********* - जे ** सी.पी. '* C ********** P 7 ** 7 ** P / - **** P - * CCCCC * P- '7 ******** P' '---' --- '
चौड़ाई: 70, ऊंचाई: 3:
---------------------------। .---------------- जे ******************************************* ***/जे**; ---------- ********* P --------- '-------------------- - '
चौड़ाई: 50, ऊँचाई: 25:
।जे--- .J * पी --- जे * एल--। जे *** 'एल-जे *********** - जे ****; **************** एल ;*****' ।जे******************** जे **** 7 *************************** ** सीसी *; । ********* एलजे *********** पी ** C * P 'J *************************** 7 * सी * एल ************************; जम्मू * सी **; **********************; जे.सी. ** सी **। ; ; ******** सीसीसी * सी ** CCCC ** "7 ***** L। 7 ***** CCCCCC **** CC ** ' - *****। -J - ** C * C * CC ****** CC * ' ; ** सीसी ***; '** सीसीसी ***** CCCC *; '- **** - - *** सीसीसीसीसी *** - '------'
चौड़ाई: 26, ऊँचाई: 17:
-, एल जे - ** एल। सी। # जे '; * पीएल, सी # " .PP 7. JC7P ;; * जे ;; , C'C; जे; सीसी; एल सी "# * एल 7-पी? *; पीसी 7CL *** J * PC '# '7 # C * C # P'; P JC # C- J # CCC # L .JC # CJCC ## C; ; # - - #, CCC # CCCCCCCC ;*।- -।सी; ; CCCCCCCCCCCC ; **** जे ** एल; सीसीसीसीसीसीसीसीसीसीसी; ; *******; 'CCCCCCCCCCCP '*******' CCCCCCCCCCC ' '* P-7 *' '' CCCCP '- '---
यह कोड-गोल्फ है , इसलिए सबसे छोटा उत्तर जीतता है।