>> [সঙ্গীত বাজাচ্ছি]
>> Rob Bowden: হাই, আমি রব নই, যাক এর আকার জন্য এই চেষ্টা.
সুতরাং, আমরা আবার শুরু করতে যাচ্ছি মূলত একটি copy.c কপি, এবং
কয়েক পরিবর্তন করতে.
অবিলম্বে আমরা একটা পরিবর্তন দেখতে উল্লেখ্য যেখানে পরিবর্তে দেখতে পরীক্ষণের মধ্যে যদি
argc, আমরা চেক করতে 3 সমান নয় চাই না argc সাল, 4 সমান না হলে
এখন আমরা শুধু একটি infile মধ্যে গ্রহণ করছি না এবং outfile, কিন্তু আমরা এ গ্রহণ করছেন
আমরা যে পরিমাণ যা এন, প্রকৃত চিত্র দ্বারা স্কেলিং.
আমরা যে নিশ্চিত হলে আমরা করতে পারেন মাত্র ATOI ব্যবহার করে একটি পূর্ণসংখ্যা যাও এন রূপান্তর.
>> সুতরাং এখন আমরা কিছু তৈরি করতে যাচ্ছেন alias লেখা, শুধু 2 infile argv কল, এবং
argv 3 outfile, argv 2 এবং কারণ argv 3 খুব সহায়ক নাম নয়.
এখন আমরা নিশ্চিত এন হয় করতে না পরীক্ষা করতে সীমার মধ্যে আমরা আশা, তাই
বৈশিষ্ট নির্দিষ্ট করে যে এটি কম বা যদি , শূন্য সমান, অথবা 100 থেকে বড়
তারপর যে একটি অবৈধ পুনরায় মাপ ফ্যাক্টর আছে, এবং আমরা যে এর ব্যবহারকারীর সতর্ক করা উচিত.
>> আমরা সব যে অতিক্রম করছি একবার আমরা করতে পারেন অবশেষে আমাদের infile খুলুন, এবং আমরা প্রয়োজন
নিশ্চিত যে চেক ত্রুটি যাও খোলার কোনো কারণে ব্যর্থ হয়নি.
আমরা আমাদের outfile খোলার প্রয়োজন, এবং আবার নিশ্চিত যে চেক ত্রুটি
কোনো কারণে ব্যর্থ হয়নি.
কিন্তু নিশ্চিত হতে যদি খোলার outfile আমরা বন্ধ করতে হবে ব্যর্থ
ইতিমধ্যেই খোলা হয় যা infile,.
>> সুতরাং, তারপর, যে ব্যর্থ হয়নি অভিমানী হন - শুধু হিসাবে copy.c--
হেডারের মধ্যে পড়তে যাচ্ছে infile থেকে.
আমরা নিশ্চিত যে এটা একটা বৈধ না করতে যাচ্ছেন বিটম্যাপ, কিন্তু এখন আমরা কিছু করতে যাচ্ছেন
একটু ভিন্নভাবে জিনিষ.
সুতরাং প্রথম, আমরা চাই চলুন মূল প্রস্থ এবং উচ্চতা স্মরণ
infile মধ্যে, কারণ আমরা চলুন outfile জন্য এটি পরিবর্তন করা.
তাই এখন অদ্ভুত কারণে মনে রাখা bi.biheight, নেতিবাচক, এবং
তাই প্রকৃত উচ্চতা, ইতিবাচক, আমরা পরম মান নিতে চান.
>> এখন, প্যাডিং একই হতে যাচ্ছে এটা copy.c ছিল হিসাব হিসাবে,
পুরানো প্রস্থ ব্যবহার করে, এবং এখন আমরা করছি আসলে পরিবর্তন করতে যাচ্ছেন
আমাদের হেডারের মধ্যে কি.
সুতরাং আমরা আমাদের প্রস্থ গুন চলুন এন, আমরা দ্বারা প্রস্থ স্কেলিং করছি সাল
আমরা যেহেতু এন, এন দ্বারা উচ্চতা সংখ্যাবৃদ্ধি এন দ্বারা স্কেলিং, এবং এখন আমরা আছে
একটি নতুন প্যাডিং জন্য গণনা নতুন প্রস্থ উপর ভিত্তি করে.
>> তাই এখন আমরা কিছু পরিবর্তন প্রয়োজন আমাদের হেডারের মধ্যে অন্যান্য ক্ষেত্র.
Bi.biSizeImage হতে অনুমিত হয় পিক্সেলে সমস্ত বাইট মাপ
এবং ছবিটি প্যাডিং.
তাই আমাদের একটি একক সারি মাপ ইমেজ আরজিবি আকার ট্রিপল, আকার
একটি একক পিক্সেল, বার সংখ্যা একটি সারিতে পিক্সেল, প্লাস প্যাডিং এ
সারির শেষে.
এবং তারপর আমরা দ্বারা যে সংখ্যাবৃদ্ধি চলুন পেতে আমাদের উচ্চতার পরম মান
বাইট মোট সংখ্যা ইমেজ ডাটা.
bf.bfSize শুধু মোট সংখ্যা আমাদের ইমেজ ডাটা বাইট, তাই
bi.biSizeImage, প্লাস আমাদের হেডার মাপ.
সুতরাং, বিটম্যাপ ফাইল আকারের উপর যুক্ত করে বিটম্যাপ তথ্য এই হেডার, এবং আকার
ঠিক আছে, হেডার.
সুতরাং যে আমরা প্রয়োজন সব আমাদের হেডার পরিবর্তন.
এখন আমরা বিটম্যাপ ফাইল হেডার লিখতে হবে আমাদের outfile, এবং আমাদের বিটম্যাপ তথ্য
এখন আমাদের outfile থেকে হেডার, এবং আমরা যাব শুরু করতে প্রস্তুত
প্রকৃত পিক্সেল ওভার.
>> সুতরাং আমরা পুনরুক্তি করতে চান infile এর স্ক্যান লাইন.
সুতরাং আমরা oldheight পুনরুক্তি করতে চান.
আমরা মনে রাখা প্রয়োজন এটি কেন আমরা এটি পরিবর্তন করার আগে মূল উচ্চতা,
ও এন দ্বারা এটি আঁশযুক্ত.
এখন আমরা একটি একক পড়তে যাচ্ছেন একটি মধ্যে infile সারি
সাইজ oldwidth এর বাফার.
আরজিবি এর তাই এখানে, আমরা freading করছি আকার ট্রিপল, এক পিক্সেল, এবং পুরোনো প্রস্থ
আমাদের বাফারের মধ্যে infile থেকে তাদের.
এবং যে একটি সম্পূর্ণ হতে যাচ্ছে এই অ্যারের মধ্যে সারি.
সুতরাং এখন, আমরা করার এন বার পুনরুক্তি করতে চান আমাদের outfile এন বার এই সারিতে মুদ্রণ.
তাই যে এই লুপ কি করছে না.
এই ভিতরের লুপ উপর iterating হয় অ্যারে, ছাপানো ধরে, নিজেই সারি
অ্যারে এন সময়ে প্রতিটি পিক্সেল.
সুতরাং zeroth উপাদান মুদ্রিত করা হচ্ছে এন বার, প্রথম উপাদান হচ্ছে
এন বার মুদ্রিত.
এবং যে ধরণের কিভাবে আমরা চলুন এর অনুভূমিকভাবে outfile মধ্যে আকার পরিবর্তন, এবং
এই লুপ, আমরা এন looping করছি সাল বার, আমরা চলুন কিভাবে
উল্লম্বভাবে স্কেল.
>> নিচে এখানে, আমরা আমরা যুক্ত করতে হবে যে দেখুন প্রতিটি সারির শেষে প্যাডিং.
এই জন্য লুপ ভিতরে হয় কেন যে শুধু এর এন সারি মুদ্রণ হচ্ছে
infile থেকে এই এক সারি.
তারপর নিচে এখানে, আমি বেশী লাফালাফি করা যাচ্ছে না infile মধ্যে প্যাডিং, একবার দেখাও
আমরা এক সারি সঙ্গে সম্পন্ন infile, আমরা যত্নশীল না
কি প্যাডিং ছিল.
আমরা শুধু দ্বিতীয় সারিতে পেতে চান.
এবং তারপর আমরা ফিরে লুপ করব এবং সব করতে এই আবার দ্বিতীয় সারির জন্য.
>> অবশেষে, একবার আমরা সবাই যে সঙ্গে সম্পন্ন করেছেন, আমরা ঘনিষ্ঠ, infile বন্ধ করে দিতে পারেন
outfile, এবং ফেরত 0 আমরা কাজ সম্পন্ন হয় কারণ.
>> আমার নাম রব, এবং এই মাপ ছিল.
>> [সঙ্গীত বাজাচ্ছি]