यदि किसी चित्र की कीमत 1000 शब्दों की है, तो आप 140 वर्णों में से कितनी तस्वीर फिट कर सकते हैं?
नोट : यही तो है लोग! बाउंटी की समय सीमा यहां है, और कुछ कठिन विचार-विमर्श के बाद, मैंने फैसला किया है कि बोयम की प्रविष्टि सैम हूसेवर की मुश्किल से ही निकली है । एक बार जब मैंने उन्हें लिखने का मौका दिया तो मैं और अधिक विस्तृत नोट्स पोस्ट करूंगा। बेशक, हर किसी को समाधान प्रस्तुत करना जारी रखना चाहिए और लोगों को वोट देने के लिए समाधान में सुधार करना चाहिए। सभी को धन्यवाद जिन्होंने प्रस्तुत किया और प्रवेश किया; मैंने उन सभी का आनंद लिया। मुझे दौड़ने में बहुत मज़ा आया है, और मुझे उम्मीद है कि यह प्रवेशकों और दर्शकों दोनों के लिए मजेदार रहा है।
मैं इस दिलचस्प पोस्ट के बारे में एक ट्विटर टिप्पणी में छवियों को संपीड़ित करने की कोशिश कर रहा था , और उस धागे में बहुत से लोगों (और Reddit पर एक धागा ) के पास विभिन्न तरीकों के बारे में सुझाव थे जो आप कर सकते थे। इसलिए, मुझे लगता है कि यह एक अच्छी कोडिंग चुनौती होगी; लोगों को अपना पैसा जहां उनका मुंह है, वहां रहने दें और यह बताएं कि एन्कोडिंग के बारे में उनके विचारों को आपके द्वारा उपलब्ध सीमित स्थान पर अधिक विस्तार हो सकता है।
मैं आपको चुनौती देता हूं कि चित्रों को 140 वर्णों के ट्विटर संदेशों में एन्कोडिंग के लिए एक सामान्य उद्देश्य प्रणाली के साथ आएं, और उन्हें फिर से एक छवि में डिकोड करें। आप यूनिकोड वर्णों का उपयोग कर सकते हैं, इसलिए आपको प्रति वर्ण 8 बिट से अधिक मिलता है। यहां तक कि यूनिकोड वर्णों के लिए अनुमति देना, हालांकि, आपको बहुत कम मात्रा में अंतरिक्ष में छवियों को संपीड़ित करने की आवश्यकता होगी; यह निश्चित रूप से एक हानिपूर्ण संपीड़न होगा, और इसलिए प्रत्येक परिणाम कितना अच्छा दिखता है, इसके बारे में व्यक्तिपरक निर्णय लेना होगा।
यहां यह परिणाम है कि मूल लेखक, क्वासिमोंडो को उनके एन्कोडिंग से प्राप्त हुआ (छवि एक क्रिएटिव कॉमन्स एट्रीब्यूशन- नॉन-कमर्शियल लाइसेंस के तहत लाइसेंस प्राप्त है ):
क्या आप बेहतर कर सकते हैं?
नियम
- आपके प्रोग्राम में दो मोड होने चाहिए: एन्कोडिंग और डिकोडिंग ।
- जब एन्कोडिंग :
- आपके कार्यक्रम को अपनी पसंद के किसी भी उचित रेखापुंज ग्राफिक प्रारूप में एक ग्राफिक के रूप में लेना चाहिए । हम कहेंगे कि ImageMagick द्वारा समर्थित कोई भी रेखापुंज प्रारूप उचित है।
- आपके कार्यक्रम को एक संदेश का उत्पादन करना चाहिए जिसे 140 या उससे कम यूनिकोड कोड बिंदुओं में दर्शाया जा सकता है; रेंज में 140 कोड अंक
U+0000
-U+10FFFF
, गैर पात्रों को छोड़कर (U+FFFE
,U+FFFF
,U+
एनFFFE
,U+
एनFFFF
जहां n है1
-10
हेक्साडेसिमल, और सीमाU+FDD0
-U+FDEF
) और सरोगेट कोड अंक (U+D800
-U+DFFF
)। यह आपकी पसंद के किसी भी उचित एन्कोडिंग में आउटपुट हो सकता है; GNUiconv
द्वारा समर्थित किसी भी एन्कोडिंग को उचित माना जाएगा, और आपके प्लेटफ़ॉर्म देशी एन्कोडिंग या लोकेल एन्कोडिंग संभवतः एक अच्छा विकल्प होगा। देखें यूनिकोड नोट अधिक जानकारी के लिए नीचे दिए गए।
- जब डीकोडिंग :
- आपके प्रोग्राम को आपके एन्कोडिंग मोड के आउटपुट के रूप में लेना चाहिए ।
- आपके कार्यक्रम को अपनी पसंद के किसी भी उचित प्रारूप में एक छवि आउटपुट करना चाहिए, जैसा कि ऊपर परिभाषित किया गया है, हालांकि आउटपुट वेक्टर प्रारूप ठीक भी हैं।
- छवि आउटपुट इनपुट छवि का एक अनुमान होना चाहिए; आप इनपुट छवि के जितना करीब होंगे, उतना बेहतर होगा।
- डिकोडिंग प्रक्रिया में उपरोक्त निर्दिष्ट आउटपुट के अलावा एन्कोडिंग प्रक्रिया के किसी अन्य आउटपुट तक कोई पहुंच नहीं हो सकती है; अर्थात्, आप कहीं भी छवि अपलोड नहीं कर सकते और डाउनलोड करने के लिए डिकोडिंग प्रक्रिया के लिए URL को आउटपुट कर सकते हैं, या ऐसा कुछ भी मूर्खतापूर्ण।
उपयोगकर्ता इंटरफ़ेस में स्थिरता के लिए, आपके कार्यक्रम को निम्नानुसार व्यवहार करना चाहिए:
- आपका कार्यक्रम एक स्क्रिप्ट होना चाहिए जिसे उचित दुभाषिया के साथ एक मंच पर निष्पादन योग्य पर सेट किया जा सकता है, या एक कार्यक्रम जिसे एक निष्पादन योग्य में संकलित किया जा सकता है।
- आपके प्रोग्राम को इसके पहले तर्क के रूप में
encode
याdecode
मोड सेट करने के लिए लेना चाहिए । आपके प्रोग्राम को निम्न में से एक या अधिक तरीकों से इनपुट लेना चाहिए (यदि आप फ़ाइल नाम लेने वाले को लागू करते हैं, तो आप स्टड से भी पढ़ और लिख सकते हैं और यदि फ़ाइल के नाम गायब हैं तो)
मानक से इनपुट लें और मानक आउट पर आउटपुट का उत्पादन करें।
my-program encode <input.png >output.txt my-program decode <output.txt >output.png
दूसरे तर्क में दर्ज फ़ाइल से इनपुट लें, और तीसरे नाम की फ़ाइल में आउटपुट का उत्पादन करें।
my-program encode input.png output.txt my-program decode output.txt output.png
- अपने समाधान के लिए, कृपया पोस्ट करें:
- आपका कोड, पूर्ण, और / या किसी लिंक को कहीं और होस्ट किया गया है (यदि यह बहुत लंबा है, या संकलन करने के लिए कई फ़ाइलों की आवश्यकता है, या कुछ और)।
- यह कैसे काम करता है, इसकी एक व्याख्या, यदि यह कोड से तुरंत स्पष्ट नहीं है या यदि कोड लंबा है और लोगों को एक सारांश में रुचि होगी।
- एक उदाहरण छवि, मूल छवि के साथ, यह पाठ को संकुचित करता है और डिकोड की गई छवि।
- यदि आप किसी ऐसे विचार पर निर्माण कर रहे हैं जो किसी और के पास था, तो कृपया उन्हें विशेषता दें। किसी अन्य व्यक्ति के विचार को परिष्कृत करने की कोशिश करना ठीक है, लेकिन आपको उन्हें अवश्य देखना चाहिए ।
दिशा-निर्देश
ये मूल रूप से नियम हैं जिन्हें तोड़ा जा सकता है, सुझाव, या स्कोरिंग मानदंड:
- सौंदर्यशास्त्र महत्वपूर्ण हैं। मैं जज बनूंगा, और सुझाव दूंगा कि दूसरे लोग जज हों:
- आउटपुट छवि कितनी अच्छी दिखती है, और यह मूल की तरह कितना दिखता है।
- पाठ कितना अच्छा लग रहा है। पूरी तरह से यादृच्छिक gobbledigook ठीक है अगर आपके पास वास्तव में एक चतुर संपीड़न योजना है, लेकिन मैं उन उत्तरों को भी देखना चाहता हूं जो म्यूटली-भाषिक कविताओं में छवियों को मोड़ते हैं, या ऐसा कुछ चतुर। ध्यान दें कि मूल समाधान के लेखक ने केवल चीनी अक्षरों का उपयोग करने का फैसला किया, क्योंकि यह उस तरह से अच्छा लग रहा था।
- दिलचस्प कोड और चतुर एल्गोरिदम हमेशा अच्छे होते हैं। मुझे लघु, टू द पॉइंट, और क्लियर कोड पसंद है, लेकिन वास्तव में चतुर जटिल एल्गोरिदम ठीक हैं, जब तक कि वे अच्छे परिणाम नहीं देते हैं।
- गति भी महत्वपूर्ण है, हालांकि यह उतना महत्वपूर्ण नहीं है जितना अच्छा है कि आपके द्वारा की गई छवि को संकुचित करना कितना अच्छा है। मेरे पास एक ऐसा कार्यक्रम होगा जो एक छवि को दूसरे के दसवें भाग में बदल सकता है, जो कुछ दिनों के लिए आनुवंशिक एल्गोरिदम के अंत में होगा।
- मैं लंबे लोगों के लिए छोटे समाधान पसंद करूंगा, जब तक कि वे गुणवत्ता में काफी हद तक तुलनीय हों; संक्षिप्तता एक गुण है।
- आपके कार्यक्रम को ऐसी भाषा में लागू किया जाना चाहिए जिसमें मैक ओएस एक्स, लिनक्स या विंडोज पर स्वतंत्र रूप से उपलब्ध कार्यान्वयन हो। मैं कार्यक्रमों को चलाने में सक्षम होना चाहता हूं, लेकिन अगर आपके पास एक महान समाधान है जो केवल MATLAB या कुछ के तहत चलता है, तो यह ठीक है।
- आपका कार्यक्रम यथासंभव सामान्य होना चाहिए; यह संभव के रूप में कई अलग अलग छवियों के लिए काम करना चाहिए, हालांकि कुछ दूसरों की तुलना में बेहतर परिणाम उत्पन्न कर सकते हैं। विशेष रूप से:
- इस कार्यक्रम में निर्मित कुछ छवियों के होने से यह मेल खाता है और एक संदर्भ लिखता है, और फिर डिकोडिंग पर मिलान छवि का उत्पादन करता है, काफी लंगड़ा है और केवल कुछ छवियों को कवर करेगा।
- एक कार्यक्रम जो सरल, सपाट, ज्यामितीय आकृतियों की छवियों को ले सकता है और उन्हें कुछ वेक्टर आदिम में विघटित करता है, वह बहुत ही सुंदर है, लेकिन अगर यह एक निश्चित जटिलता से परे छवियों पर विफल रहता है तो यह संभवतः सामान्य है।
- एक ऐसा कार्यक्रम जो केवल एक विशेष निश्चित पहलू अनुपात की छवियां ले सकता है, लेकिन उनके साथ एक अच्छा काम भी ठीक होगा, लेकिन आदर्श नहीं।
- आप पा सकते हैं कि एक काले और सफेद छवि को एक रंग छवि की तुलना में एक छोटे स्थान में अधिक जानकारी मिल सकती है। दूसरी ओर, यह उस छवि के प्रकार को सीमित कर सकता है जो इसके लिए लागू है; चेहरे काले और सफेद रंग में ठीक निकलते हैं, लेकिन अमूर्त डिजाइन शायद इतनी अच्छी तरह से किराया नहीं करते हैं।
- यह पूरी तरह से ठीक है अगर आउटपुट छवि इनपुट से छोटी है, जबकि लगभग समान अनुपात है। यह ठीक है अगर आपको छवि को मूल से तुलना करना है; महत्वपूर्ण यह है कि यह कैसा दिखता है।
- आपके कार्यक्रम को ऐसे आउटपुट का उत्पादन करना चाहिए जो वास्तव में ट्विटर के माध्यम से जा सकता है और बिना बिके बाहर आ सकता है। यह केवल एक नियम के बजाय एक दिशानिर्देश है, क्योंकि मैं समर्थित वर्णों के सटीक सेट पर कोई दस्तावेज नहीं ढूंढ सका, लेकिन आपको शायद नियंत्रण पात्रों, कायरता अदृश्य संयोजन पात्रों, निजी उपयोग पात्रों और पसंद से बचना चाहिए।
रूब्रिक स्कोरिंग
एक सामान्य मार्गदर्शिका के रूप में कि मैं अपने स्वीकृत समाधान का चयन करते समय कैसे रैंकिंग समाधान करूंगा, जो कहता है कि मैं शायद 25 बिंदु पैमाने पर समाधानों का मूल्यांकन करूंगा (यह बहुत मोटा है, और मैं सीधे कुछ भी स्कोर नहीं करूंगा, बस उपयोग करके यह मूल दिशानिर्देश के रूप में):
- एन्कोडिंग योजना कितनी अच्छी तरह से इनपुट छवियों की एक विस्तृत श्रृंखला को पुन: पेश करती है, इसके लिए 15 अंक । यह एक व्यक्तिपरक, सौंदर्यपूर्ण निर्णय है
- 0 का मतलब है कि यह बिल्कुल भी काम नहीं करता है, यह एक ही छवि को हर बार, या कुछ और देता है
- 5 का मतलब है कि यह कुछ छवियों को एन्कोड कर सकता है, हालांकि डिकोडेड संस्करण बदसूरत दिखता है और यह अधिक जटिल छवियों पर बिल्कुल भी काम नहीं कर सकता है
- 10 का मतलब है कि यह कई प्रकार की छवियों पर काम करता है, और सुखद दिखने वाली छवियों का उत्पादन करता है जो कभी-कभी अलग हो सकती हैं
- 15 का मतलब है कि यह कुछ छवियों की सही प्रतिकृतियां पैदा करता है, और यहां तक कि बड़ी और अधिक जटिल छवियों के लिए, कुछ ऐसा देता है जो पहचानने योग्य होता है। या, शायद यह उन छवियों को नहीं बनाता है जो काफी पहचानने योग्य हैं, लेकिन सुंदर छवियां पैदा करती हैं जो मूल रूप से स्पष्ट रूप से प्राप्त होती हैं।
- यूनिकोड वर्ण सेट के चतुर उपयोग के लिए
3 अंक
- अनुमत वर्णों के पूरे सेट का उपयोग करने के लिए 0 अंक
- पात्रों के सीमित सेट का उपयोग करने के लिए 1 बिंदु जो ट्विटर पर या विभिन्न प्रकार की स्थितियों में स्थानांतरण के लिए सुरक्षित हैं
- वर्णों के विषयगत सबसेट का उपयोग करने के लिए 2 अंक, जैसे कि केवल हान विचारधारा या केवल दाएं-से-बाएँ वर्ण
- वास्तव में साफ-सुथरा कुछ करने के लिए 3 बिंदु, जैसे पठनीय पाठ उत्पन्न करना या प्रश्न में छवि की तरह दिखने वाले पात्रों का उपयोग करना
- चालाक एल्गोरिदम दृष्टिकोण और कोड शैली के लिए
3 अंक
- 0 अंक के लिए कोड की 1000 लाइनें केवल छवि को स्केल करने के लिए है, इसे 1 बिट प्रति पिक्सेल के रूप में मानें, और बेस 64 एनकोड करें
- 1 ऐसी चीज के लिए जो एक मानक एन्कोडिंग तकनीक का उपयोग करती है और अच्छी तरह से लिखित और संक्षिप्त है
- किसी चीज़ के लिए 2 अंक जो अपेक्षाकृत उपन्यास एन्कोडिंग तकनीक का परिचय देता है, या जो आश्चर्यजनक रूप से छोटा और साफ है
- एक लाइनर के लिए 3 अंक जो वास्तव में अच्छे परिणाम पैदा करते हैं, या कुछ ऐसा जो ग्राफिक्स एन्कोडिंग में नई जमीन को तोड़ता है (यदि ऐसा लगता है कि नए ग्राउंड को तोड़ने के लिए कम अंक हैं, तो याद रखें कि इस परिणाम से सौंदर्यशास्त्र के लिए एक उच्च अंक होगा। भी)
- गति के लिए 2 अंक । बाकी सभी समान, तेज होना बेहतर है, लेकिन उपरोक्त मानदंड गति से अधिक महत्वपूर्ण हैं
- मुफ्त (ओपन सोर्स) सॉफ्टवेयर पर चलने के लिए 1 अंक , क्योंकि मैं मुफ्त सॉफ्टवेयर पसंद करता हूं (ध्यान दें कि C # अभी भी इस बिंदु के लिए योग्य होगा, क्योंकि यह मोनो पर चलता है, इसी तरह MATLAB कोड योग्य होगा यदि यह GNU ऑक्टेव पर चलता है)
- सभी नियमों का वास्तव में पालन करने के लिए 1 अंक । इन नियमों ने थोड़ा बड़ा और जटिल हो गया है, इसलिए मैं शायद अन्यथा अच्छे उत्तरों को स्वीकार करूंगा जो एक छोटे से विवरण को गलत करते हैं, लेकिन मैं किसी भी समाधान के लिए एक अतिरिक्त बिंदु दूंगा जो वास्तव में सभी नियमों का पालन करता है
संदर्भ चित्र
कुछ लोगों ने कुछ संदर्भ चित्र मांगे हैं। यहाँ कुछ संदर्भ चित्र दिए गए हैं जिन्हें आप आज़मा सकते हैं; छोटे संस्करण यहां एम्बेड किए गए हैं, वे सभी छवि के बड़े संस्करणों से लिंक करते हैं यदि आपको उन की आवश्यकता है:
इनाम
उपरोक्त मानदंड के आधार पर, मुझे सबसे अच्छा पसंद है कि समाधान के लिए मैं एक 500 प्रतिनिधि इनाम (प्लस 50 कि StackOverflow kicks) की पेशकश कर रहा हूं। निश्चित रूप से, मैं अन्य सभी को अपने पसंदीदा समाधानों के लिए यहां भी वोट देने के लिए प्रोत्साहित करता हूं।
समय सीमा पर ध्यान दें
यह प्रतियोगिता तब तक चलेगी, जब तक कि 30 मई, शनिवार को शाम 6 बजे के आसपास इनाम बाहर नहीं निकल जाता। यह शाम 5 से 7 बजे तक कहीं भी हो सकता है। मैं गारंटी देता हूं कि मैं दोपहर 2 बजे प्रस्तुत सभी प्रविष्टियों को देखूंगा, और मैं 4 बजे तक प्रस्तुत सभी प्रविष्टियों को देखने की पूरी कोशिश करूंगा; अगर उसके बाद समाधान प्रस्तुत किया जाता है, तो मुझे अपना निर्णय लेने से पहले उन्हें उचित रूप देने का मौका नहीं मिल सकता है। इसके अलावा, आप जो पहले जमा करते हैं, आपके पास मतदान करने का अधिक मौका होगा, जिससे मुझे सबसे अच्छा समाधान चुनने में मदद मिलेगी, इसलिए कोशिश करें और समय सीमा पर सही होने के बजाय पहले जमा करें।
यूनिकोड नोट्स
यूनिकोड वर्णों की अनुमति के बारे में भी कुछ भ्रम है। संभव यूनिकोड कोड बिंदुओं की सीमा U+0000
है U+10FFFF
। कुछ कोड बिंदु हैं जो डेटा के किसी भी खुले इंटरचेंज में यूनिकोड वर्ण के रूप में उपयोग करने के लिए कभी भी मान्य नहीं हैं; ये अछूत और सरोगेट कोड बिंदु हैं । Noncharacters में परिभाषित कर रहे हैं Unidode स्टैंडर्ड 5.1.0 खंड 16.7 मूल्यों के रूप में U+FFFE
, U+FFFF
, U+
एनFFFE
, U+
एनFFFF
जहां n है 1
- 10
हेक्साडेसिमल, और सीमा U+FDD0
-U+FDEF
। इन मूल्यों का उपयोग अनुप्रयोग-विशिष्ट आंतरिक उपयोग के लिए किया जाना है, और अनुरूपण अनुप्रयोग इन वर्णों को उनके द्वारा संसाधित पाठ से बाहर निकाल सकते हैं। सरोगेट कोड अंक, में परिभाषित यूनिकोड स्टैंडर्ड 5.1.0 खंड 3.8 के रूप में U+D800
- U+DFFF
, UTF-16 में बेसिक बहुभाषी विमान परे वर्ण एन्कोड करने के लिए उपयोग किया जाता है; इस प्रकार, UTF-16 एन्कोडिंग में सीधे इन कोड बिंदुओं का प्रतिनिधित्व करना असंभव है, और उन्हें किसी अन्य एन्कोडिंग में एन्कोड करना अमान्य है। इस प्रकार, इस प्रतियोगिता के प्रयोजन के लिए, मैं किसी भी प्रोग्राम है जो सीमा से 140 से अधिक नहीं यूनिकोड कोड अंक के अनुक्रम में छवियों को कूटबद्ध अनुमति देगा U+0000
- U+10FFFF
, ऊपर परिभाषित सभी noncharacters और सरोगेट जोड़े को छोड़कर।
मैं उन समाधानों को प्राथमिकता दूंगा जो केवल असाइन किए गए वर्णों का उपयोग करते हैं, और इससे भी बेहतर कि वे असाइन किए गए वर्णों के चतुर सबसेट का उपयोग करते हैं या उनके द्वारा उपयोग किए गए वर्ण सेट के साथ कुछ दिलचस्प करते हैं। असाइन किए गए वर्णों की सूची के लिए, यूनिकोड कैरेक्टर डेटाबेस देखें ; ध्यान दें कि कुछ वर्ण सीधे सूचीबद्ध हैं, जबकि कुछ केवल एक सीमा के प्रारंभ और अंत के रूप में सूचीबद्ध हैं। यह भी ध्यान दें कि सरोगेट कोड अंक डेटाबेस में सूचीबद्ध हैं, लेकिन ऊपर वर्णित के रूप में निषिद्ध है। यदि आप पाठ को अधिक रोचक बनाने के लिए वर्णों के कुछ गुणों का लाभ लेना चाहते हैं, तो विभिन्न प्रकार के वर्ण जानकारी के डेटाबेस उपलब्ध हैं, जैसे कि नामांकित ब्लॉक और विभिन्न वर्ण गुणों की सूची।
चूंकि ट्विटर सटीक वर्ण सेट का समर्थन नहीं करता है जो वे समर्थन करते हैं, मैं उन समाधानों के बारे में उत्तरदायी रहूंगा जो वास्तव में ट्विटर के साथ काम नहीं करते हैं क्योंकि कुछ वर्ण अतिरिक्त या कुछ वर्णों को गिनते हैं। यह पसंद किया जाता है, लेकिन यह आवश्यक नहीं है कि सभी एन्कोडेड आउटपुट को ट्विटर या अन्य माइक्रोब्लॉगिंग सेवा जैसे कि आइडीआईए के माध्यम से अनचाहे स्थानांतरित किया जा सके । मैंने कुछ दस्तावेज़ों को बताते हुए देखा है कि ट्विटर इकाई-एनकोड <,>, और &, और इस तरह क्रमशः 4, 4, और 5 वर्णों के रूप में गिना जाता है, लेकिन मैंने खुद का परीक्षण नहीं किया है और उनके जावास्क्रिप्ट वर्ण काउंटर नहीं लगते हैं। उन्हें उस तरह से गिनने के लिए।
टिप्स और लिंक
- नियमों में मान्य यूनिकोड वर्णों की परिभाषा थोड़ी जटिल है। वर्णों का एक भी ब्लॉक चुनना, जैसे कि CJK यूनिफाइड आइडियोग्राफ (U + 4E00 – U + 9FCF) आसान हो सकता है।
- आप अपनी छवि हेरफेर के लिए मौजूदा इमेज लाइब्रेरी का उपयोग कर सकते हैं, जैसे कि इमेजमैजिक या पायथन इमेजिंग लाइब्रेरी ।
- यदि आपको यूनिकोड वर्ण सेट और इसके विभिन्न एन्कोडिंग को समझने में कुछ मदद चाहिए, तो यह त्वरित गाइड या लिनक्स और यूनिक्स में UTF-8 पर इस विस्तृत FAQ को देखें ।
- इससे पहले कि आप अपना समाधान प्राप्त करें, जितना अधिक समय मुझे (और अन्य लोगों को मतदान करना) देखना होगा। यदि आप इसे सुधारते हैं तो आप अपने समाधान को संपादित कर सकते हैं; जब मैं समाधानों के माध्यम से अपना अंतिम रूप लूंगा, तो मैं सबसे हाल के संस्करण पर अपने इनाम को आधार बनाऊंगा।
- यदि आप पार्स और लिखने के लिए एक आसान छवि प्रारूप चाहते हैं (और केवल एक मौजूदा प्रारूप का उपयोग नहीं करना चाहते हैं), तो मैं पीपीएम प्रारूप का उपयोग करने का सुझाव दूंगा । यह एक पाठ आधारित प्रारूप है, जिसके साथ काम करना बहुत आसान है, और आप इसे और इससे परिवर्तित करने के लिए ImageMagick का उपयोग कर सकते हैं ।