मैं लोगों और शून्य का सही कॉम्बो पाठ करता हूं


9

मैंने हाल ही में गाने के लिए सूचीबद्ध किया हूं मैं ड्राइविंग के दौरान टेक्सटिंग के बारे में एक टेक्स्टपेर्ट हूं और गीत में एक विशेष पंक्ति ने इस चुनौती को प्रेरित किया।

मैं कभी भी पाठ तस्वीरों के रूप में इतना कम नहीं करता / बल्कि मैं लोगों और शून्य के सही कॉम्बो का पाठ करता हूं

अब जाहिर है, यह एक लगभग असंभव बात है जो लोगों के सिर में करनी चाहिए और इसलिए आपको एक ही काम करने के लिए एक प्रोग्राम को कोड करके टेक्स्ट वर्ल्ड को व्यापक बनाने में मदद करनी चाहिए।

आपका काम आयामों के साथ एक छवि फ़ाइल का नाम लेना है 500x500और फ़ाइल को बाइनरी के रूप में आउटपुट करना है। यदि आप भाषा का समर्थन करते हैं, तो आप इनपुट के रूप में एक छवि भी ले सकते हैं।

आप एक्सटेंशन के साथ छवि फ़ाइलों का उपयोग कर सकते हैं

  • .jpg
  • .png
  • .gif
  • .bmp
  • .svg

मुझे उन लोगों के लिए बाइनरी में परिवर्तित करने के तरीके को प्रदर्शित करने की अनुमति दें, जिनके लिए मेरा मतलब नहीं है।

चरण 1

फ़ाइल में पहला पिक्सेल लें और इसके RGB मान को 3 दशमलव संख्याओं के रूप में पुनः प्राप्त करें: R, G और B. मान लेते हैं, उदाहरण के लिए, कि पहला पिक्सेल 255,0,0(लाल) है।

चरण 2

प्रत्येक संख्या को उसके 8-बिट बाइनरी प्रतिनिधित्व में परिवर्तित करें और एक एकल 24-बिट संख्या में परिवर्तित करें। उदाहरण के लिए, यह पैदावार देता है111111110000000000000000

चरण 3

इस 24-बिट संख्या को अंतिम आउटपुट में जोड़ें। इसलिए, अंतिम आउटपुट का 6000000अंक लंबा होना चाहिए और इसमें पूरी तरह से 1और होना चाहिए0

यह है एक इतना कम कोड जीतता है!


1
क्या आप कृपया इनपुट निर्दिष्ट कर सकते हैं। क्या फ़ाइल नाम केवल संभव इनपुट पर काम करने के लिए है या क्या वे भाषाएँ जो इनपुट के उपयोग की अनुमति देती हैं?
इयान मिलर

किस तरह के छवि प्रारूपों का समर्थन करने की आवश्यकता है? क्या मैं एक छवि प्रारूप चुन सकता हूं (या आविष्कार कर सकता हूं)?
L3viathan

इसके अतिरिक्त आउटपुट के लिए क्या आप चाहते हैं कि यह आउटपुट और शून्य को मानक आउटपुट के लिए तैयार करता है (क्या इसे एक स्ट्रिंग होने की आवश्यकता है या यह पूर्णांकों की एक सरणी हो सकती है) या वास्तव में इसमें डेटा के साथ एक नई फ़ाइल बनाएं?
इयान मिलर

@IanMiller आउटपुट यहां किसी भी स्वीकृत विधि से हो सकता है और इनपुट या तो फ़ाइल नाम या छवि हो सकती है, यदि आप इसका समर्थन करते हैं।
caird coinheringaahing

क्या आपके पास कोई वृषण है?
आउटगॉल्फ

जवाबों:


4

पायथ , 14 13 बाइट्स

-1 बाइट की बदौलत एरिक द आउटगोलर ( zनिहित इनपुट के लिए हटाया जा सकता है)।

sm.[\08.Bd.n'

स्पष्टीकरण

sm.[\08.Bd.n'

            '    # Open the path/URL given as implicit input. Return list of color triples for color images: [(255, 125, 23), ...]
          .n     # Flatten the list
 m     .Bd       # For each element of the list, convert to binary
  .[\08          # Pad with zeros on the left up to 8 characters
s                # Concatenate the list of bytes

दुर्भाग्य से, सुरक्षा कारणों की वजह से, जिसे ऑनलाइन दुभाषिया के साथ परीक्षण नहीं किया जा सकता है ; आपको अपने कंप्यूटर पर परीक्षण करने के लिए Pyth को क्लोन करना होगा।


1
आप उद्धृत इनपुट को हटा सकते हैं और हटा सकते हैं z
एरिक आउटगोल्फ

4

MATL , 13 12 बाइट्स

YiH&!8&YB!1e

इनपुट के रूप में एक स्ट्रिंग के रूप में एक फ़ाइल नाम स्वीकार करता है। आउटपुट 24-बिट संख्या पंक्ति-प्रमुख क्रम में प्रदर्शित होते हैं।

दुर्भाग्य से यह सुरक्षा कारणों से ऑनलाइन दुभाषियों में काम नहीं करता है। यहाँ इसका एक स्क्रीनशॉट मेरे स्थानीय मशीन पर काम कर रहा है

यहां छवि विवरण दर्ज करें

यहां है थोड़ा संशोधित संस्करण है जिसमें मैं मैन्युअल रूप से एक 2 x 2 x 3 छवि बनाता हूं और फिर इसे संसाधित करने के लिए एक ही कोड का उपयोग करता हूं।

व्याख्या

        % Implicitly grab input as a string
Yi      % Read in as an M x N x 3 image
H&!     % Permute the dimensions of the image to be 3 x N x M
8&YB    % Convert to a binary string using 8 bits for each element
!       % Transpose the result
1e      % Reshape to a row vector
        % Implicitly display the result

2

गणितज्ञ, 103 बाइट्स

F=Flatten;Export["x.txt",FromDigits@F[IntegerDigits[#,2,8]&/@F[ImageData[Import["x.bmp"],"Byte"],1],2]]


एक छवि x.bmp (या कोई अन्य) लेता है और इसे x.txt फ़ाइल में परिवर्तित करता है


इसके बजाय PadLeft, आप तीसरे तर्क का उपयोग कर सकते हैं IntegerDigits(यानीIntegerDigits[#,2,8]&
जंगवान मिन

तुम पूरी तरह ठीक हो! मैं भूल गया था कि मैं इसका इस्तेमाल कर सकता हूं!
J42161217

एकमात्र गलती "आयात []" गायब थी क्योंकि मैं इसे एक छवि के साथ परीक्षण कर रहा था। हर कोई अब ठीक काम करता है। क्या आप अपडेट किए गए कोड (?) का परीक्षण कर रहे हैं, क्योंकि मैं PadLeft का उपयोग नहीं करता हूं
J42161217

उफ़, मैं ताज़ा नहीं हुआ था इसलिए मैं एक पुराने संस्करण को देख रहा था।
इयान मिलर

नियमों के आधार पर आप इसे एक फ़ंक्शन के रूप में लिखकर बाइट्स के एक झुंड को बचा सकते हैं जो एक छवि का इनपुट करता है और इस ImportExport` का उपयोग करने के बजाय मानक आउटपुट पर आउटपुट करता है।
इयान मिलर

2

सी #, 309 बाइट्स

मेरा दूसरा कोड गोल्फ, अगर आप नहीं बता सकते। एक छवि लेता है x.jpg ...

using System;using System.Drawing;using System.Linq;class Program{static void Main(string[]a){Bitmap b=(Bitmap)Image.FromFile("x.jpg");Console.WriteLine(string.Join("",from i in Enumerable.Range(0,250000)select Convert.ToString(Convert.ToInt32(b.GetPixel((int)Math.Floor((double)i/500),i%500).Name,16),2)));}}

अच्छा प्रयास और साइट पर आपका स्वागत है! मुझे नहीं पता कि C # तो आपको कोई गोल्फ नहीं दे सकता, लेकिन मुझे यकीन है कि दूसरे लोग करेंगे!
caird coinheringaahing

1

ऑक्टेव, 46 बाइट्स

@(x)dec2bin(permute(imread(x),[3,1,2]),8)'(:)'

एक अनाम फ़ंक्शन बनाता ansहै जिसे किसी फ़ाइल नाम ( ans('file.png')) या URL ( ans('http://image.png')) के साथ बुलाया जा सकता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.