[সঙ্গীত বাজাচ্ছি] Rob Bowden: হাই. আমি রব নই এবং let এর আকার এই সমস্যা আপ. সুতরাং আমরা হিসাবে copy.c দিয়ে শুরু করতে যাচ্ছেন একটি টেমপ্লেট, কিন্তু আমরা হতে যাচ্ছেন বেশ কিছু পরিবর্তন. এখন আমরা আমরা অবিলম্বে তৈরি করছেন দেখতে একটি আমরা এখন আর চেক করছি যেখানে পরিবর্তন আমাদের rxc এখন 3 সমান, কিন্তু এই নয় জন্য আমরা রেসিন চেক করছি 4 সমান হয় না. আমরা এ অন্তর্ভুক্ত করতে চান সাল ফাইল এবং আউট ফাইল ছাড়াও এই হতে যাচ্ছে যা আর্গুমেন্ট, চ আমরা স্কেলিং করছি যার দ্বারা ফ্যাক্টর. আমরা যে নিশ্চিত তাই একবার, আমরা চাই স্ট্রিং রূপান্তর গুলি স্ক্যান চ ব্যবহার একটি ভাসা argv1. এবং আমরা সংরক্ষণ চলুন যে সালে ফ্যাক্টর. এই অতিরিক্ত চরিত্র নিশ্চিত করছে আমরা আসলে লিখে হয় না 1.4 এবিসি মত কিছু কমান্ড লাইনে. এখন আমরা কিছু alias তৈরী করতে যাচ্ছেন RV2 এবং RV3 নয় সাল খুব সহায়ক নাম. আমরা পরিবর্তে, কল চলুন তাদের ফাইলে এবং ফাইল খুঁজে. এখন আমরা নিশ্চিত যে চলুন আমাদের ফ্যাক্টর আসলে বৈধ ছিল. সুতরাং ফ্যাক্টর কম বা সমান হলে শূন্য বা তার অধিক 100 বেশী তারপর হিসাবে প্রতি বৈশিষ্ট, আমরা প্রত্যাখ্যান উচিত যে ফ্যাক্টর. আমরা নিশ্চিত হলে এটা এখন আমরা করতে পারেন, ভাল এন ফাইল খোলার, এবং আমরা করা আছে এটি সফলভাবে খোলা ছিল না. তা না হলে, যে নাল ফিরে আসবে. আমরা খুঁজে ফাইল খুলতে যাচ্ছেন. এবং আবার, আমরা করতে না পরীক্ষা করতে নিশ্চিত এটি সফলভাবে খোলা হচ্ছে. এবং এটা সফলভাবে তারপর, খুলতে না আমরা বন্ধ করতে ভুলবেন না প্রয়োজন এন ফাইল যা মূলত সফলভাবে খোলা, অথবা অন্য আমরা আছে একটি মেমরি লিক. তাই এখন আমরা বিটম্যাপ মধ্যে পড়তে যাচ্ছেন ফাইল হেডার এবং বিটম্যাপ তথ্য এন ফাইল থেকে শিরোলেখ. আমরা নিশ্চিত যে চলুন এন ফাইলটি একটি বৈধ বিটম্যাপ ছিল. ঠিক আছে. তাই এখন আমরা শুরু করতে যাচ্ছেন কিছু পরিবর্তন. আমরা পরিবর্তন করা চলুন তাই কারণ জিনিস, আমরা প্রথমে মনে রাখতে চান এন ফাইলের পুরানো প্রস্থ. আমরা পুরানো প্যাডিং মনে রাখতে চান একই হিসাব ব্যবহার করে এন ফাইল copy.c. থেকে এবং এখন আমরা পরিবর্তন করতে যাচ্ছেন বিটম্যাপ তথ্য হেডার. এবং তাই আমরা প্রস্থ উভয় গুন করছি এবং যেহেতু ফ্যাক্টর দ্বারা উচ্চতা যে আমরা দ্বারা স্কেলিং করছি কি. আমরা নির্ধারণ করতে যাচ্ছেন ফাইলের দ্বারা নতুন প্যাডিং নতুন প্রস্থ ব্যবহার করে. এবং আমরা নতুন নির্ধারণ চলুন নম্বর ব্যবহার করে ইমেজ মাপ যাচ্ছে যা একটি একক সারিতে বাইট যে সারিতে পিক্সেল সংখ্যা হতে বার পিক্সেল আকার প্লাস শেষে প্যাডিং বাইট সংখ্যা যে সারির, এবং যে সব গুন আমরা যে সারি সংখ্যা দ্বারা. সুতরাং যে বাইট সংখ্যা এর আমরা আমাদের ইমেজ তথ্য আছে. Bf.Bfsize এখন সংখ্যা হতে যাচ্ছে আমাদের ইমেজ বিটা বাইট প্লাস আমাদের হেডার মাপ. বিটম্যাপ ফাইল হেডার এর তাই প্লাস আকার এবং বিটম্যাপ তথ্য হেডারের মাপ. ঠিক আছে. সুতরাং যে আমাদের হেডার জন্য এটি. আমরা ফাইল মাথা লিখুন এবং পারেন আমাদের বের করতে তথ্য হেডারের ফাইল, এবং আমরা ভাল. এখন এটা আসলে শুরু সময় পিক্সেল লেখা আউট ফাইলে তথ্য. আমরা আকারের একটি বাফার ঘোষণা করতে যাচ্ছেন পুরানো প্রস্থ আরজিবি triples, এবং আমরা করছি নামে একটি ভেরিয়েবল ডিক্লেয়ার করা যাচ্ছে আমরা চলুন যা সারিতে অসাড়, প্রাথমিকভাবে নেতিবাচক 1 সমান সেট. আমরা আমরা ব্যবহার করা চলুন দেখতে পাবেন যে কি ট্র্যাক রাখতে যাতে আমরা বর্তমানে লোড সারিতে এই বাফার মধ্যে. ঠিক আছে. সুতরাং এখন, মানক সংস্করণে অসদৃশ পরিবর্তে ইন এ উপর iterating এর ফাইল, আমরা প্রতিটি পুনরুক্তি উপর চলুন আউট ফাইলে সারি এবং চিন্তা আমরা চাই এ ফাইলে যা সারিতে আউট ফাইলে এই সারিতে লিখুন. তাই আউট সব সারি উপর iterating নতুন উচ্চতা ব্যবহার করে ফাইল, আমরা প্রথম হন পুরানো মধ্যে সারি নির্ধারণ যাচ্ছে আমরা এসেছি, যা ব্যবহার চলুন দায়ের এই বর্তমান গ্রহণ করতে যাচ্ছে সারি ফ্যাক্টর দ্বারা বিভক্ত. সুতরাং যে আমাদের সারি দিতে যাচ্ছে আমরা চাই যে পুরানো ফাইলে. তাই এখন যদি সারিতে অসাড় সমান না পুরানো Y আছে, আমরা সারি পড়া আছে চলুন আমরা আমাদের বর্তমান সারিতে বাফারের মধ্যে চান. তাই কিভাবে আমরা তা করতে যাচ্ছে? প্রথমত, আমরা চিন্তা করতে যাচ্ছেন যে সারি যে শুরু অবস্থান মূল ফাইল. সুতরাং যে অবস্থানে হতে যাচ্ছে আমাদের হেডার সব এবং অতীত এখন অতীত পুরানো Y সারি. তাই কত বাইট একটি সারিতে কি? আবার, ট্রিপল বার আরজিবি মাপ পুরাতন প্রস্থ প্লাস পুরোনো প্যাডিং, যাতে যে একটি সারিতে বাইট সংখ্যা. এবং আমরা অতীত পুরানো Y সারি এড়িয়ে চান. সুতরাং আমরা চ চাইতে চলুন এবং আমরা করছি থেকে শুরু সেট চাওয়া ব্যবহার একটি ফাইলের শুরুতে. আমরা এই অবস্থান চাইতে চ চলুন ফাইলের মধ্যে, এ আমাদের নির্বাণ আমরা চাই সারির প্রারম্ভে আমাদের বাফারের মধ্যে পড়তে. আমরা সারিতে সেট চলুন পুরানো Y সমান অসাড়. তাই এখন যদি আমরা লুপ ফিরে এবং আমরা চাই আমাদের খুঁজে ফাইলে এই একই সারিতে ব্যবহার, তারপর আমরা পড়তে যাচ্ছেন না এটা আবার অকারণে. সত্যিই তাই, সারি অসাড় শুধু একটি অপ্টিমাইজেশান. পরিশেষে, আমরা মধ্যে পড়তে যাচ্ছেন বর্তমান সারি পুরানো প্রস্থ আরজিবি triples আমরা মূল ফাইল থেকে চান. তাই এখন বর্তমান সারি থেকে পিক্সেল রয়েছে আমরা চাই যে মূল ফাইল আউট ফাইলে লিখতে. তাই এখন, শুধু উপরের মত, পরিবর্তে পুরোনো ফাইল উপর iterating, আমরা প্রয়োজন এটা নতুন ফাইল সারি পুনরুক্তি উপর. আচ্ছা এখানে, পরিবর্তে উপর iterating সব পুরানো পিক্সেল যে বর্তমান সারিতে, আমরা সব পুনরুক্তি উপর চান এই মধ্যে আমাদের নতুন ফাইলে পিক্সেল বিশেষ সারিতে. কেন আমরা কি সেটা চান? আমরা পারব না যে এখানে দেখতে কারণ আসলে অগত্যা সব ব্যবহার মূল ফাইলে পিক্সেল. আমরা হ্রাস করছি, আমরা পারে কারণ আসলে পিক্সেল এড়িয়ে চান. এবং আমরা যে এই দেখুন - X ফ্যাক্টর দ্বারা বিভক্ত - আমরা Y বলতে যেখানে ঘনিষ্ঠভাবে এখানে আপ প্রতিফলিত করে জিনিসটা ফ্যাক্টর দ্বারা বিভক্ত যে পুরানো Y-তম সারিতে অনুরূপ এই নতুন ফাইলে Y-তম সারিতে. এখন আমরা সব লিখতে যাচ্ছেন পুরানো সারি থেকে এই পিক্সেল আমাদের নতুন সারির মধ্যে. আমরা যে কাজ করেছি, আমরা প্রয়োজন মাত্র আমাদের সারির শেষে প্যাডিং করা এবং আমরা ফিরে লুপ হবে এবং এর জন্য অবিরত আমাদের নতুন ফাইলে সারি সব. শেষে, আমরা আমাদের পুরানো বন্ধ করতে হবে , ফাইল আমাদের নতুন ফাইলটি বন্ধ করুন, এবং ফেরত শূন্য সবকিছু সূক্ষ্ম গিয়েছিলাম কারণ. আমার নাম রব এবং এই ছুটি ছিল. [সঙ্গীত বাজাচ্ছি]