1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [সঙ্গীত বাজাচ্ছি] 3 00:00:12,470 --> 00:00:13,210 >> Rob Bowden: হাই. 4 00:00:13,210 --> 00:00:16,870 আমি রব নই এবং let এর আকার এই সমস্যা আপ. 5 00:00:16,870 --> 00:00:20,990 সুতরাং আমরা হিসাবে copy.c দিয়ে শুরু করতে যাচ্ছেন একটি টেমপ্লেট, কিন্তু আমরা হতে যাচ্ছেন 6 00:00:20,990 --> 00:00:23,340 বেশ কিছু পরিবর্তন. 7 00:00:23,340 --> 00:00:27,570 >> এখন আমরা আমরা অবিলম্বে তৈরি করছেন দেখতে একটি আমরা এখন আর চেক করছি যেখানে পরিবর্তন 8 00:00:27,570 --> 00:00:31,560 আমাদের rxc এখন 3 সমান, কিন্তু এই নয় জন্য আমরা রেসিন চেক করছি 4 সমান হয় না. 9 00:00:31,560 --> 00:00:34,670 আমরা এ অন্তর্ভুক্ত করতে চান সাল ফাইল এবং আউট ফাইল ছাড়াও 10 00:00:34,670 --> 00:00:39,550 এই হতে যাচ্ছে যা আর্গুমেন্ট, চ আমরা স্কেলিং করছি যার দ্বারা ফ্যাক্টর. 11 00:00:39,550 --> 00:00:45,430 >> আমরা যে নিশ্চিত তাই একবার, আমরা চাই স্ট্রিং রূপান্তর গুলি স্ক্যান চ ব্যবহার 12 00:00:45,430 --> 00:00:49,030 একটি ভাসা argv1. 13 00:00:49,030 --> 00:00:51,330 এবং আমরা সংরক্ষণ চলুন যে সালে ফ্যাক্টর. 14 00:00:51,330 --> 00:00:55,180 এই অতিরিক্ত চরিত্র নিশ্চিত করছে আমরা আসলে লিখে হয় না 15 00:00:55,180 --> 00:00:59,200 1.4 এবিসি মত কিছু কমান্ড লাইনে. 16 00:00:59,200 --> 00:01:02,960 >> এখন আমরা কিছু alias তৈরী করতে যাচ্ছেন RV2 এবং RV3 নয় সাল 17 00:01:02,960 --> 00:01:04,310 খুব সহায়ক নাম. 18 00:01:04,310 --> 00:01:07,660 আমরা পরিবর্তে, কল চলুন তাদের ফাইলে এবং ফাইল খুঁজে. 19 00:01:07,660 --> 00:01:11,580 এখন আমরা নিশ্চিত যে চলুন আমাদের ফ্যাক্টর আসলে বৈধ ছিল. 20 00:01:11,580 --> 00:01:16,330 সুতরাং ফ্যাক্টর কম বা সমান হলে শূন্য বা তার অধিক 100 বেশী তারপর হিসাবে প্রতি 21 00:01:16,330 --> 00:01:19,660 বৈশিষ্ট, আমরা প্রত্যাখ্যান উচিত যে ফ্যাক্টর. 22 00:01:19,660 --> 00:01:23,890 >> আমরা নিশ্চিত হলে এটা এখন আমরা করতে পারেন, ভাল এন ফাইল খোলার, এবং আমরা করা আছে 23 00:01:23,890 --> 00:01:25,950 এটি সফলভাবে খোলা ছিল না. 24 00:01:25,950 --> 00:01:28,630 তা না হলে, যে নাল ফিরে আসবে. 25 00:01:28,630 --> 00:01:30,390 আমরা খুঁজে ফাইল খুলতে যাচ্ছেন. 26 00:01:30,390 --> 00:01:33,420 এবং আবার, আমরা করতে না পরীক্ষা করতে নিশ্চিত এটি সফলভাবে খোলা হচ্ছে. 27 00:01:33,420 --> 00:01:37,270 এবং এটা সফলভাবে তারপর, খুলতে না আমরা বন্ধ করতে ভুলবেন না প্রয়োজন 28 00:01:37,270 --> 00:01:40,870 এন ফাইল যা মূলত সফলভাবে খোলা, অথবা অন্য আমরা আছে একটি 29 00:01:40,870 --> 00:01:42,600 মেমরি লিক. 30 00:01:42,600 --> 00:01:46,350 >> তাই এখন আমরা বিটম্যাপ মধ্যে পড়তে যাচ্ছেন ফাইল হেডার এবং বিটম্যাপ তথ্য 31 00:01:46,350 --> 00:01:48,890 এন ফাইল থেকে শিরোলেখ. 32 00:01:48,890 --> 00:01:52,360 আমরা নিশ্চিত যে চলুন এন ফাইলটি একটি বৈধ বিটম্যাপ ছিল. 33 00:01:52,360 --> 00:01:52,640 ঠিক আছে. 34 00:01:52,640 --> 00:01:55,100 >> তাই এখন আমরা শুরু করতে যাচ্ছেন কিছু পরিবর্তন. 35 00:01:55,100 --> 00:01:58,840 আমরা পরিবর্তন করা চলুন তাই কারণ জিনিস, আমরা প্রথমে মনে রাখতে চান 36 00:01:58,840 --> 00:02:01,510 এন ফাইলের পুরানো প্রস্থ. 37 00:02:01,510 --> 00:02:05,160 আমরা পুরানো প্যাডিং মনে রাখতে চান একই হিসাব ব্যবহার করে এন ফাইল 38 00:02:05,160 --> 00:02:06,990 copy.c. থেকে 39 00:02:06,990 --> 00:02:09,840 >> এবং এখন আমরা পরিবর্তন করতে যাচ্ছেন বিটম্যাপ তথ্য হেডার. 40 00:02:09,840 --> 00:02:13,630 এবং তাই আমরা প্রস্থ উভয় গুন করছি এবং যেহেতু ফ্যাক্টর দ্বারা উচ্চতা 41 00:02:13,630 --> 00:02:15,750 যে আমরা দ্বারা স্কেলিং করছি কি. 42 00:02:15,750 --> 00:02:18,420 আমরা নির্ধারণ করতে যাচ্ছেন ফাইলের দ্বারা নতুন প্যাডিং 43 00:02:18,420 --> 00:02:21,140 নতুন প্রস্থ ব্যবহার করে. 44 00:02:21,140 --> 00:02:27,330 এবং আমরা নতুন নির্ধারণ চলুন নম্বর ব্যবহার করে ইমেজ মাপ 45 00:02:27,330 --> 00:02:31,610 যাচ্ছে যা একটি একক সারিতে বাইট যে সারিতে পিক্সেল সংখ্যা হতে 46 00:02:31,610 --> 00:02:35,960 বার পিক্সেল আকার প্লাস শেষে প্যাডিং বাইট সংখ্যা 47 00:02:35,960 --> 00:02:40,310 যে সারির, এবং যে সব গুন আমরা যে সারি সংখ্যা দ্বারা. 48 00:02:40,310 --> 00:02:43,800 সুতরাং যে বাইট সংখ্যা এর আমরা আমাদের ইমেজ তথ্য আছে. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize এখন সংখ্যা হতে যাচ্ছে আমাদের ইমেজ বিটা বাইট প্লাস 50 00:02:48,190 --> 00:02:49,350 আমাদের হেডার মাপ. 51 00:02:49,350 --> 00:02:53,910 বিটম্যাপ ফাইল হেডার এর তাই প্লাস আকার এবং বিটম্যাপ তথ্য হেডারের মাপ. 52 00:02:53,910 --> 00:02:54,510 ঠিক আছে. 53 00:02:54,510 --> 00:02:56,440 সুতরাং যে আমাদের হেডার জন্য এটি. 54 00:02:56,440 --> 00:02:59,030 আমরা ফাইল মাথা লিখুন এবং পারেন আমাদের বের করতে তথ্য হেডারের 55 00:02:59,030 --> 00:03:01,590 ফাইল, এবং আমরা ভাল. 56 00:03:01,590 --> 00:03:03,800 >> এখন এটা আসলে শুরু সময় পিক্সেল লেখা 57 00:03:03,800 --> 00:03:05,120 আউট ফাইলে তথ্য. 58 00:03:05,120 --> 00:03:10,460 আমরা আকারের একটি বাফার ঘোষণা করতে যাচ্ছেন পুরানো প্রস্থ আরজিবি triples, এবং আমরা করছি 59 00:03:10,460 --> 00:03:13,790 নামে একটি ভেরিয়েবল ডিক্লেয়ার করা যাচ্ছে আমরা চলুন যা সারিতে অসাড়, 60 00:03:13,790 --> 00:03:15,640 প্রাথমিকভাবে নেতিবাচক 1 সমান সেট. 61 00:03:15,640 --> 00:03:19,090 আমরা আমরা ব্যবহার করা চলুন দেখতে পাবেন যে কি ট্র্যাক রাখতে যাতে 62 00:03:19,090 --> 00:03:22,640 আমরা বর্তমানে লোড সারিতে এই বাফার মধ্যে. 63 00:03:22,640 --> 00:03:23,290 ঠিক আছে. 64 00:03:23,290 --> 00:03:28,750 >> সুতরাং এখন, মানক সংস্করণে অসদৃশ পরিবর্তে ইন এ উপর iterating এর 65 00:03:28,750 --> 00:03:32,900 ফাইল, আমরা প্রতিটি পুনরুক্তি উপর চলুন আউট ফাইলে সারি এবং চিন্তা 66 00:03:32,900 --> 00:03:38,130 আমরা চাই এ ফাইলে যা সারিতে আউট ফাইলে এই সারিতে লিখুন. 67 00:03:38,130 --> 00:03:44,930 তাই আউট সব সারি উপর iterating নতুন উচ্চতা ব্যবহার করে ফাইল, আমরা প্রথম হন 68 00:03:44,930 --> 00:03:48,890 পুরানো মধ্যে সারি নির্ধারণ যাচ্ছে আমরা এসেছি, যা ব্যবহার চলুন দায়ের 69 00:03:48,890 --> 00:03:53,560 এই বর্তমান গ্রহণ করতে যাচ্ছে সারি ফ্যাক্টর দ্বারা বিভক্ত. 70 00:03:53,560 --> 00:03:58,000 সুতরাং যে আমাদের সারি দিতে যাচ্ছে আমরা চাই যে পুরানো ফাইলে. 71 00:03:58,000 --> 00:04:03,310 >> তাই এখন যদি সারিতে অসাড় সমান না পুরানো Y আছে, আমরা সারি পড়া আছে চলুন 72 00:04:03,310 --> 00:04:05,940 আমরা আমাদের বর্তমান সারিতে বাফারের মধ্যে চান. 73 00:04:05,940 --> 00:04:07,700 তাই কিভাবে আমরা তা করতে যাচ্ছে? 74 00:04:07,700 --> 00:04:11,650 প্রথমত, আমরা চিন্তা করতে যাচ্ছেন যে সারি যে শুরু অবস্থান 75 00:04:11,650 --> 00:04:13,100 মূল ফাইল. 76 00:04:13,100 --> 00:04:18,630 সুতরাং যে অবস্থানে হতে যাচ্ছে আমাদের হেডার সব এবং অতীত 77 00:04:18,630 --> 00:04:21,589 এখন অতীত পুরানো Y সারি. 78 00:04:21,589 --> 00:04:23,880 >> তাই কত বাইট একটি সারিতে কি? 79 00:04:23,880 --> 00:04:28,740 আবার, ট্রিপল বার আরজিবি মাপ পুরাতন প্রস্থ প্লাস পুরোনো প্যাডিং, যাতে যে 80 00:04:28,740 --> 00:04:30,640 একটি সারিতে বাইট সংখ্যা. 81 00:04:30,640 --> 00:04:33,680 এবং আমরা অতীত পুরানো Y সারি এড়িয়ে চান. 82 00:04:33,680 --> 00:04:37,580 সুতরাং আমরা চ চাইতে চলুন এবং আমরা করছি থেকে শুরু সেট চাওয়া ব্যবহার 83 00:04:37,580 --> 00:04:39,100 একটি ফাইলের শুরুতে. 84 00:04:39,100 --> 00:04:42,740 আমরা এই অবস্থান চাইতে চ চলুন ফাইলের মধ্যে, এ আমাদের নির্বাণ 85 00:04:42,740 --> 00:04:46,500 আমরা চাই সারির প্রারম্ভে আমাদের বাফারের মধ্যে পড়তে. 86 00:04:46,500 --> 00:04:48,510 >> আমরা সারিতে সেট চলুন পুরানো Y সমান অসাড়. 87 00:04:48,510 --> 00:04:53,080 তাই এখন যদি আমরা লুপ ফিরে এবং আমরা চাই আমাদের খুঁজে ফাইলে এই একই সারিতে ব্যবহার, 88 00:04:53,080 --> 00:04:55,970 তারপর আমরা পড়তে যাচ্ছেন না এটা আবার অকারণে. 89 00:04:55,970 --> 00:04:59,310 সত্যিই তাই, সারি অসাড় শুধু একটি অপ্টিমাইজেশান. 90 00:04:59,310 --> 00:05:05,500 >> পরিশেষে, আমরা মধ্যে পড়তে যাচ্ছেন বর্তমান সারি পুরানো প্রস্থ আরজিবি triples 91 00:05:05,500 --> 00:05:08,040 আমরা মূল ফাইল থেকে চান. 92 00:05:08,040 --> 00:05:12,270 তাই এখন বর্তমান সারি থেকে পিক্সেল রয়েছে আমরা চাই যে মূল ফাইল 93 00:05:12,270 --> 00:05:14,200 আউট ফাইলে লিখতে. 94 00:05:14,200 --> 00:05:18,960 তাই এখন, শুধু উপরের মত, পরিবর্তে পুরোনো ফাইল উপর iterating, আমরা প্রয়োজন 95 00:05:18,960 --> 00:05:22,560 এটা নতুন ফাইল সারি পুনরুক্তি উপর. 96 00:05:22,560 --> 00:05:27,450 আচ্ছা এখানে, পরিবর্তে উপর iterating সব পুরানো পিক্সেল যে বর্তমান সারিতে, 97 00:05:27,450 --> 00:05:31,210 আমরা সব পুনরুক্তি উপর চান এই মধ্যে আমাদের নতুন ফাইলে পিক্সেল 98 00:05:31,210 --> 00:05:32,480 বিশেষ সারিতে. 99 00:05:32,480 --> 00:05:34,140 >> কেন আমরা কি সেটা চান? 100 00:05:34,140 --> 00:05:38,960 আমরা পারব না যে এখানে দেখতে কারণ আসলে অগত্যা সব ব্যবহার 101 00:05:38,960 --> 00:05:41,020 মূল ফাইলে পিক্সেল. 102 00:05:41,020 --> 00:05:46,630 আমরা হ্রাস করছি, আমরা পারে কারণ আসলে পিক্সেল এড়িয়ে চান. 103 00:05:46,630 --> 00:05:48,090 এবং আমরা যে এই দেখুন - 104 00:05:48,090 --> 00:05:49,690 X ফ্যাক্টর দ্বারা বিভক্ত - 105 00:05:49,690 --> 00:05:55,620 আমরা Y বলতে যেখানে ঘনিষ্ঠভাবে এখানে আপ প্রতিফলিত করে জিনিসটা ফ্যাক্টর দ্বারা বিভক্ত যে 106 00:05:55,620 --> 00:06:02,480 পুরানো Y-তম সারিতে অনুরূপ এই নতুন ফাইলে Y-তম সারিতে. 107 00:06:02,480 --> 00:06:05,880 >> এখন আমরা সব লিখতে যাচ্ছেন পুরানো সারি থেকে এই পিক্সেল 108 00:06:05,880 --> 00:06:07,440 আমাদের নতুন সারির মধ্যে. 109 00:06:07,440 --> 00:06:10,890 আমরা যে কাজ করেছি, আমরা প্রয়োজন মাত্র আমাদের সারির শেষে প্যাডিং করা 110 00:06:10,890 --> 00:06:15,540 এবং আমরা ফিরে লুপ হবে এবং এর জন্য অবিরত আমাদের নতুন ফাইলে সারি সব. 111 00:06:15,540 --> 00:06:19,390 শেষে, আমরা আমাদের পুরানো বন্ধ করতে হবে , ফাইল আমাদের নতুন ফাইলটি বন্ধ করুন, এবং ফেরত 112 00:06:19,390 --> 00:06:21,540 শূন্য সবকিছু সূক্ষ্ম গিয়েছিলাম কারণ. 113 00:06:21,540 --> 00:06:24,220 >> আমার নাম রব এবং এই ছুটি ছিল. 114 00:06:24,220 --> 00:06:29,184 >> [সঙ্গীত বাজাচ্ছি]