1 00:00:00,000 --> 00:00:12,240 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:12,240 --> 00:00:15,870 >> Rob Bowden: হাই, আমি রব নই, যাক এর আকার জন্য এই চেষ্টা. 3 00:00:15,870 --> 00:00:21,100 সুতরাং, আমরা আবার শুরু করতে যাচ্ছি মূলত একটি copy.c কপি, এবং 4 00:00:21,100 --> 00:00:22,860 কয়েক পরিবর্তন করতে. 5 00:00:22,860 --> 00:00:26,280 অবিলম্বে আমরা একটা পরিবর্তন দেখতে উল্লেখ্য যেখানে পরিবর্তে দেখতে পরীক্ষণের মধ্যে যদি 6 00:00:26,280 --> 00:00:30,440 argc, আমরা চেক করতে 3 সমান নয় চাই না argc সাল, 4 সমান না হলে 7 00:00:30,440 --> 00:00:34,350 এখন আমরা শুধু একটি infile মধ্যে গ্রহণ করছি না এবং outfile, কিন্তু আমরা এ গ্রহণ করছেন 8 00:00:34,350 --> 00:00:38,980 আমরা যে পরিমাণ যা এন, প্রকৃত চিত্র দ্বারা স্কেলিং. 9 00:00:38,980 --> 00:00:44,340 আমরা যে নিশ্চিত হলে আমরা করতে পারেন মাত্র ATOI ব্যবহার করে একটি পূর্ণসংখ্যা যাও এন রূপান্তর. 10 00:00:44,340 --> 00:00:48,760 >> সুতরাং এখন আমরা কিছু তৈরি করতে যাচ্ছেন alias লেখা, শুধু 2 infile argv কল, এবং 11 00:00:48,760 --> 00:00:54,240 argv 3 outfile, argv 2 এবং কারণ argv 3 খুব সহায়ক নাম নয়. 12 00:00:54,240 --> 00:00:58,510 এখন আমরা নিশ্চিত এন হয় করতে না পরীক্ষা করতে সীমার মধ্যে আমরা আশা, তাই 13 00:00:58,510 --> 00:01:02,910 বৈশিষ্ট নির্দিষ্ট করে যে এটি কম বা যদি , শূন্য সমান, অথবা 100 থেকে বড় 14 00:01:02,910 --> 00:01:08,580 তারপর যে একটি অবৈধ পুনরায় মাপ ফ্যাক্টর আছে, এবং আমরা যে এর ব্যবহারকারীর সতর্ক করা উচিত. 15 00:01:08,580 --> 00:01:13,090 >> আমরা সব যে অতিক্রম করছি একবার আমরা করতে পারেন অবশেষে আমাদের infile খুলুন, এবং আমরা প্রয়োজন 16 00:01:13,090 --> 00:01:16,270 নিশ্চিত যে চেক ত্রুটি যাও খোলার কোনো কারণে ব্যর্থ হয়নি. 17 00:01:16,270 --> 00:01:19,860 আমরা আমাদের outfile খোলার প্রয়োজন, এবং আবার নিশ্চিত যে চেক ত্রুটি 18 00:01:19,860 --> 00:01:21,250 কোনো কারণে ব্যর্থ হয়নি. 19 00:01:21,250 --> 00:01:26,270 কিন্তু নিশ্চিত হতে যদি খোলার outfile আমরা বন্ধ করতে হবে ব্যর্থ 20 00:01:26,270 --> 00:01:29,040 ইতিমধ্যেই খোলা হয় যা infile,. 21 00:01:29,040 --> 00:01:33,690 >> সুতরাং, তারপর, যে ব্যর্থ হয়নি অভিমানী হন - শুধু হিসাবে copy.c-- 22 00:01:33,690 --> 00:01:36,140 হেডারের মধ্যে পড়তে যাচ্ছে infile থেকে. 23 00:01:36,140 --> 00:01:40,130 আমরা নিশ্চিত যে এটা একটা বৈধ না করতে যাচ্ছেন বিটম্যাপ, কিন্তু এখন আমরা কিছু করতে যাচ্ছেন 24 00:01:40,130 --> 00:01:41,620 একটু ভিন্নভাবে জিনিষ. 25 00:01:41,620 --> 00:01:44,870 সুতরাং প্রথম, আমরা চাই চলুন মূল প্রস্থ এবং উচ্চতা স্মরণ 26 00:01:44,870 --> 00:01:48,290 infile মধ্যে, কারণ আমরা চলুন outfile জন্য এটি পরিবর্তন করা. 27 00:01:48,290 --> 00:01:53,890 তাই এখন অদ্ভুত কারণে মনে রাখা bi.biheight, নেতিবাচক, এবং 28 00:01:53,890 --> 00:01:58,670 তাই প্রকৃত উচ্চতা, ইতিবাচক, আমরা পরম মান নিতে চান. 29 00:01:58,670 --> 00:02:02,580 >> এখন, প্যাডিং একই হতে যাচ্ছে এটা copy.c ছিল হিসাব হিসাবে, 30 00:02:02,580 --> 00:02:06,060 পুরানো প্রস্থ ব্যবহার করে, এবং এখন আমরা করছি আসলে পরিবর্তন করতে যাচ্ছেন 31 00:02:06,060 --> 00:02:07,320 আমাদের হেডারের মধ্যে কি. 32 00:02:07,320 --> 00:02:11,200 সুতরাং আমরা আমাদের প্রস্থ গুন চলুন এন, আমরা দ্বারা প্রস্থ স্কেলিং করছি সাল 33 00:02:11,200 --> 00:02:15,100 আমরা যেহেতু এন, এন দ্বারা উচ্চতা সংখ্যাবৃদ্ধি এন দ্বারা স্কেলিং, এবং এখন আমরা আছে 34 00:02:15,100 --> 00:02:19,250 একটি নতুন প্যাডিং জন্য গণনা নতুন প্রস্থ উপর ভিত্তি করে. 35 00:02:19,250 --> 00:02:21,840 >> তাই এখন আমরা কিছু পরিবর্তন প্রয়োজন আমাদের হেডারের মধ্যে অন্যান্য ক্ষেত্র. 36 00:02:21,840 --> 00:02:26,890 Bi.biSizeImage হতে অনুমিত হয় পিক্সেলে সমস্ত বাইট মাপ 37 00:02:26,890 --> 00:02:28,520 এবং ছবিটি প্যাডিং. 38 00:02:28,520 --> 00:02:34,190 তাই আমাদের একটি একক সারি মাপ ইমেজ আরজিবি আকার ট্রিপল, আকার 39 00:02:34,190 --> 00:02:39,430 একটি একক পিক্সেল, বার সংখ্যা একটি সারিতে পিক্সেল, প্লাস প্যাডিং এ 40 00:02:39,430 --> 00:02:40,910 সারির শেষে. 41 00:02:40,910 --> 00:02:45,200 এবং তারপর আমরা দ্বারা যে সংখ্যাবৃদ্ধি চলুন পেতে আমাদের উচ্চতার পরম মান 42 00:02:45,200 --> 00:02:48,350 বাইট মোট সংখ্যা ইমেজ ডাটা. 43 00:02:48,350 --> 00:02:53,050 bf.bfSize শুধু মোট সংখ্যা আমাদের ইমেজ ডাটা বাইট, তাই 44 00:02:53,050 --> 00:02:56,530 bi.biSizeImage, প্লাস আমাদের হেডার মাপ. 45 00:02:56,530 --> 00:02:59,850 সুতরাং, বিটম্যাপ ফাইল আকারের উপর যুক্ত করে বিটম্যাপ তথ্য এই হেডার, এবং আকার 46 00:02:59,850 --> 00:03:00,800 ঠিক আছে, হেডার. 47 00:03:00,800 --> 00:03:03,170 সুতরাং যে আমরা প্রয়োজন সব আমাদের হেডার পরিবর্তন. 48 00:03:03,170 --> 00:03:07,020 এখন আমরা বিটম্যাপ ফাইল হেডার লিখতে হবে আমাদের outfile, এবং আমাদের বিটম্যাপ তথ্য 49 00:03:07,020 --> 00:03:09,880 এখন আমাদের outfile থেকে হেডার, এবং আমরা যাব শুরু করতে প্রস্তুত 50 00:03:09,880 --> 00:03:11,990 প্রকৃত পিক্সেল ওভার. 51 00:03:11,990 --> 00:03:15,720 >> সুতরাং আমরা পুনরুক্তি করতে চান infile এর স্ক্যান লাইন. 52 00:03:15,720 --> 00:03:17,730 সুতরাং আমরা oldheight পুনরুক্তি করতে চান. 53 00:03:17,730 --> 00:03:20,830 আমরা মনে রাখা প্রয়োজন এটি কেন আমরা এটি পরিবর্তন করার আগে মূল উচ্চতা, 54 00:03:20,830 --> 00:03:23,040 ও এন দ্বারা এটি আঁশযুক্ত. 55 00:03:23,040 --> 00:03:27,810 এখন আমরা একটি একক পড়তে যাচ্ছেন একটি মধ্যে infile সারি 56 00:03:27,810 --> 00:03:30,630 সাইজ oldwidth এর বাফার. 57 00:03:30,630 --> 00:03:36,190 আরজিবি এর তাই এখানে, আমরা freading করছি আকার ট্রিপল, এক পিক্সেল, এবং পুরোনো প্রস্থ 58 00:03:36,190 --> 00:03:39,760 আমাদের বাফারের মধ্যে infile থেকে তাদের. 59 00:03:39,760 --> 00:03:43,480 এবং যে একটি সম্পূর্ণ হতে যাচ্ছে এই অ্যারের মধ্যে সারি. 60 00:03:43,480 --> 00:03:50,390 সুতরাং এখন, আমরা করার এন বার পুনরুক্তি করতে চান আমাদের outfile এন বার এই সারিতে মুদ্রণ. 61 00:03:50,390 --> 00:03:52,510 তাই যে এই লুপ কি করছে না. 62 00:03:52,510 --> 00:03:57,910 এই ভিতরের লুপ উপর iterating হয় অ্যারে, ছাপানো ধরে, নিজেই সারি 63 00:03:57,910 --> 00:04:00,710 অ্যারে এন সময়ে প্রতিটি পিক্সেল. 64 00:04:00,710 --> 00:04:04,510 সুতরাং zeroth উপাদান মুদ্রিত করা হচ্ছে এন বার, প্রথম উপাদান হচ্ছে 65 00:04:04,510 --> 00:04:05,660 এন বার মুদ্রিত. 66 00:04:05,660 --> 00:04:10,820 এবং যে ধরণের কিভাবে আমরা চলুন এর অনুভূমিকভাবে outfile মধ্যে আকার পরিবর্তন, এবং 67 00:04:10,820 --> 00:04:13,390 এই লুপ, আমরা এন looping করছি সাল বার, আমরা চলুন কিভাবে 68 00:04:13,390 --> 00:04:15,580 উল্লম্বভাবে স্কেল. 69 00:04:15,580 --> 00:04:19,850 >> নিচে এখানে, আমরা আমরা যুক্ত করতে হবে যে দেখুন প্রতিটি সারির শেষে প্যাডিং. 70 00:04:19,850 --> 00:04:25,050 এই জন্য লুপ ভিতরে হয় কেন যে শুধু এর এন সারি মুদ্রণ হচ্ছে 71 00:04:25,050 --> 00:04:28,400 infile থেকে এই এক সারি. 72 00:04:28,400 --> 00:04:32,150 তারপর নিচে এখানে, আমি বেশী লাফালাফি করা যাচ্ছে না infile মধ্যে প্যাডিং, একবার দেখাও 73 00:04:32,150 --> 00:04:34,560 আমরা এক সারি সঙ্গে সম্পন্ন infile, আমরা যত্নশীল না 74 00:04:34,560 --> 00:04:35,290 কি প্যাডিং ছিল. 75 00:04:35,290 --> 00:04:37,110 আমরা শুধু দ্বিতীয় সারিতে পেতে চান. 76 00:04:37,110 --> 00:04:40,870 এবং তারপর আমরা ফিরে লুপ করব এবং সব করতে এই আবার দ্বিতীয় সারির জন্য. 77 00:04:40,870 --> 00:04:44,406 >> অবশেষে, একবার আমরা সবাই যে সঙ্গে সম্পন্ন করেছেন, আমরা ঘনিষ্ঠ, infile বন্ধ করে দিতে পারেন 78 00:04:44,406 --> 00:04:47,430 outfile, এবং ফেরত 0 আমরা কাজ সম্পন্ন হয় কারণ. 79 00:04:47,430 --> 00:04:50,330 >> আমার নাম রব, এবং এই মাপ ছিল. 80 00:04:50,330 --> 00:04:54,934 >> [সঙ্গীত বাজাচ্ছি]