>> [संगीत खेल]
>> आरओबी BOWDEN: हाय, मैं रोब हूँ, चलो आकार के लिए पर इस कोशिश.
तो, हम फिर से शुरू करने जा रहे हैं मूल रूप से एक copy.c की प्रतिलिपि, और
कुछ परिवर्तन करें.
तुरंत हम एक बदलाव को देखने के नोट जहां बजाय देखने के लिए जाँच की अगर
argc, हम जांच करने के लिए 3 बराबर नहीं चाहता है argc के बाद से, 4 बराबर नहीं है अगर
अब हम सिर्फ एक infile में नहीं ले रहे हैं और outfile, लेकिन हम भी में ले जा रहे हैं
हम कर रहे हैं कि राशि है जो एन, मूल छवि से स्केलिंग.
हम इस बात का यकीन हो जाने के बाद, हम कर सकते हैं बस atoi का उपयोग कर एक पूर्णांक n करने के लिए परिवर्तित.
>> तो, अब हम कुछ बनाने के लिए जा रहे हैं फर्जी नाम, सिर्फ 2 infile argv कहते हैं, और
argv 3 outfile, argv 2 और क्योंकि argv 3 बहुत उपयोगी नाम नहीं हैं.
अब हमें यकीन है कि n है बनाने के लिए जाँच करना चाहते हैं सीमा के भीतर हम उम्मीद करते हैं, तो
कल्पना यह बताता है कि यह कम से कम या अगर , शून्य के बराबर, या 100 से अधिक
तो है कि एक अवैध आकार परिवर्तन कारक है, और हम उस के उपयोगकर्ता को सचेत करना चाहिए.
>> हम सब उस पार जाते हैं, तो हम कर सकते हैं अंत में हमारे infile खोलने, और हम की जरूरत
यकीन है कि जांच त्रुटि को उद्घाटन किसी कारण के लिए असफल नहीं किया.
हम भी अपने outfile खोलने की जरूरत है, और फिर से सुनिश्चित करने के लिए जांच त्रुटि
किसी कारण के लिए असफल नहीं किया.
लेकिन यकीन है कि अगर का उद्घाटन outfile हम बंद करने की आवश्यकता है कि विफल रही
पहले से ही खोला गया था जो infile,.
>> तो, फिर, कि असफल नहीं किया संभालने we're - बस के रूप में copy.c -
हैडर में पढ़ने के लिए जा रहा infile से.
हमें यकीन है कि यह एक वैध बनाने के लिए जा रहे हैं बिटमैप, लेकिन अब हम कुछ ऐसा करने जा रहे हैं
थोड़ा अलग बातें.
तो सबसे पहले, हम चाहते करने जा रहे हैं मूल चौड़ाई और ऊंचाई याद
infile की, क्योंकि हम करने जा रहे हैं outfile के लिए इसे बदलने जा.
तो अब अजीब कारणों के लिए याद है कि bi.biheight, नकारात्मक है, और
इतने में वास्तविक ऊंचाई, सकारात्मक, हम निरपेक्ष मान लेना चाहते हैं.
>> अब, गद्दी ही होने जा रहा है यह copy.c में था गणना के रूप में,
पुराने चौड़ाई का उपयोग कर, और अब हम कर रहे हैं वास्तव में बदलने जा रहा
हमारे शीर्ष में क्या है.
तो हम से हमारे चौड़ाई गुणा करने के लिए जा रहे हैं एन, हम द्वारा चौड़ाई स्केलिंग रहे हैं
हम कर रहे हैं के बाद से n, n द्वारा ऊंचाई गुणा n द्वारा स्केलिंग, और अब हमारे पास
एक नई गद्दी के लिए गणना नई चौड़ाई के आधार पर.
>> तो अब हम कुछ बदलने की जरूरत हमारे शीर्ष लेख में अन्य क्षेत्रों.
Bi.biSizeImage माना जाता है पिक्सल में सभी बाइट्स का आकार
और छवि की गद्दी.
और इसलिए हमारे की एक ही पंक्ति का आकार छवि आरजीबी का आकार ट्रिपल, आकार है
एक एकल पिक्सेल का, बार संख्या की एक पंक्ति में पिक्सल, प्लस गद्दी पर
पंक्ति के अंत.
और फिर हम से है कि गुणा करने के लिए जा रहे हैं पाने के लिए हमारे ऊंचाई के निरपेक्ष मूल्य
बाइट्स की कुल संख्या छवि डेटा में.
bf.bfSize अभी कुल संख्या है के बारे में हमारी छवि डेटा में बाइट्स, तो
bi.biSizeImage, प्लस हमारे हेडर के आकार.
तो, बिटमैप फ़ाइल के आकार पर जोड़ने बिटमैप जानकारी का शीर्षक है, और आकार
ठीक है, हैडर.
तो यह है कि हम सब करने की ज़रूरत है हमारे हेडर में बदल जाते हैं.
अब हम बिटमैप फ़ाइल शीर्ष लेख लिख देंगे हमारे outfile, और हमारे बिटमैप की जानकारी के लिए
अब हमारे outfile को हैडर, और हम जा रहा शुरू करने के लिए तैयार हैं
वास्तविक पिक्सल से अधिक.
>> इसलिए हम अधिक पुनरावृति करना चाहते हैं infile की लाइनों स्कैन.
इसलिए हम oldheight अधिक पुनरावृति करना चाहते हैं.
हम याद करने की जरूरत है यही कारण है कि हम इसे बदलने से पहले मूल ऊंचाई,
और एन द्वारा इसे बढ़ाया.
अब हम एक भी पढ़ने के लिए जा रहे हैं एक में infile की पंक्ति
आकार oldwidth के बफर.
आरजीबी की तो यहाँ, हम freading रहे हैं आकार ट्रिपल, एक पिक्सेल, और के पुराने चौड़ाई
हमारे बफर में infile से उन्हें.
और कहा कि एक पूरा होने जा रहा है इस सरणी में पंक्ति.
तो अब, हम करने के लिए एन बार पुनरावृति करना चाहते हैं हमारे outfile एन बार करने के लिए इस पंक्ति मुद्रित.
और इतना है कि इस पाश कर रहा है.
यह भीतरी लूप पर iterating है सरणी, मुद्रण पर, खुद पंक्ति
सरणी एन बार में प्रत्येक पिक्सेल.
तो zeroth तत्व मुद्रित किया जा रहा है n बार, पहला तत्व जा रहा है
एन बार छपी.
और उस तरह का है कि कैसे हम करने जा रहे है क्षैतिज outfile में पैमाने पर, और
इस लूप, हम n पाशन रहे हैं कई बार, हम करने जा रहे हैं कि कैसे है
खड़ी पैमाने.
>> यहाँ नीचे, हम हम जोड़ने की जरूरत है कि देखना प्रत्येक पंक्ति के अंत में पैडिंग.
इस के लिए लूप के अंदर है यही कारण है कि कि बस के एन पंक्तियों बाहर मुद्रण है
infile से इस एक पंक्ति.
तो फिर यहाँ नीचे, मैं पर छोड़ जा रहा हूँ infile में गद्दी, एक बार के बाद से
हम में से एक पंक्ति के साथ कर रहे हैं infile, हम के बारे में परवाह नहीं है
क्या गद्दी था.
हम सिर्फ दूसरी पंक्ति को प्राप्त करना चाहते हैं.
और फिर हम वापस पाश हूँ और सब करते हैं इस बार फिर दूसरी पंक्ति के लिए.
>> अंत में, एक बार हम सब के साथ कर रहे हैं, हम करीब, infile बंद कर सकते हैं
outfile, और वापसी 0 हम कर रहे हैं क्योंकि.
>> मेरा नाम रोब है, और यह आकार परिवर्तन था.
>> [संगीत खेल]