1 00:00:00,000 --> 00:00:12,240 >> [موسیقی بجانا] 2 00:00:12,240 --> 00:00:15,870 >> روب 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 >> تو، اب ہم نے کچھ پیدا کرنے کے لئے جا رہے ہیں عرفی نام، صرف 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 >> تو، پھر، کہ ناکام نہیں کیا سنبھالنے we're - صرف میں 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 >> تو ہم پر iterate کرنا چاہتے ہیں infile کی اسکین لائنوں. 52 00:03:15,720 --> 00:03:17,730 تو ہم oldheight پر iterate کرنا چاہتے ہیں. 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 تو اب، ہم (ن) کے اوقات iterate کرنا چاہتے ہیں ہمارے 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 عنصر طباعت کیا جا رہا ہے N اوقات، پہلا عنصر جا رہا ہے 65 00:04:04,510 --> 00:04:05,660 N اوقات طباعت. 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 >> [موسیقی بجانا]