1 00:00:00,000 --> 00:00:12,240 >> [Daqq tal-mużika] 2 00:00:12,240 --> 00:00:15,870 >> ROB Bowden: Hi, jien Rob, ejja tipprova dan fuq għad-daqs. 3 00:00:15,870 --> 00:00:21,100 Allura, aħna darb'oħra ser tibda bil- bażikament kopja tal-copy.c, u 4 00:00:21,100 --> 00:00:22,860 jagħmlu ftit tibdiliet. 5 00:00:22,860 --> 00:00:26,280 Nota immedjatament naraw bidla, fejn minflok verifika biex tara jekk 6 00:00:26,280 --> 00:00:30,440 argc ma ugwali 3, irridu li jiċċekkjaw jekk argc ma ugwali 4, peress li 7 00:00:30,440 --> 00:00:34,350 issa aħna mhux biss tieħu fi infile u outfile, imma aħna wkoll qed tieħu fl 8 00:00:34,350 --> 00:00:38,980 n, li huwa l-ammont li aħna qed skalar l-immaġini oriġinali mill-. 9 00:00:38,980 --> 00:00:44,340 Ladarba aħna żgur ta 'dak, nistgħu biss jikkonvertu n għal integer użu atoi. 10 00:00:44,340 --> 00:00:48,760 >> Allura, issa aħna qed tmur biex joħolqu xi psewdonimi, biss sejħa ARGV 2 infile, u 11 00:00:48,760 --> 00:00:54,240 ARGV 3 outfile, minħabba ARGV 2 u ARGV 3 mhumiex ismijiet utli ħafna. 12 00:00:54,240 --> 00:00:58,510 Issa rridu li jivverifika sabiex ikun żgur n hija fil-limiti nistennew, sabiex il- 13 00:00:58,510 --> 00:01:02,910 spec jispeċifika li jekk huwa inqas minn jew żero, jew aktar minn 100, 14 00:01:02,910 --> 00:01:08,580 allura dak l-fattur resize invalidu, u għandna twissi lill-utent ta 'dak. 15 00:01:08,580 --> 00:01:13,090 >> Ladarba aħna qed hinn dak kollu li, nistgħu finalment tiftaħ infile tagħna, u għandna bżonn 16 00:01:13,090 --> 00:01:16,270 għal żball jivverifika sabiex ikun żgur li l- ftuħ ma naqasx milli għal xi raġuni. 17 00:01:16,270 --> 00:01:19,860 Għandna bżonn ukoll li tiftaħ outfile tagħna, u darb'oħra żball jivverifika sabiex ikun żgur li 18 00:01:19,860 --> 00:01:21,250 ma naqasx milli għal xi raġuni. 19 00:01:21,250 --> 00:01:26,270 Imma kun żgur jekk il-ftuħ tal- outfile naqset li għandna bżonn li tagħlaq 20 00:01:26,270 --> 00:01:29,040 l infile, li kien diġà miftuħa. 21 00:01:29,040 --> 00:01:33,690 >> Għalhekk, jekk wieħed jassumi li ma ifallu, we're - hekk kif fil copy.c-- 22 00:01:33,690 --> 00:01:36,140 ser jinqara fil-header mill-infile. 23 00:01:36,140 --> 00:01:40,130 Aħna qed tmur biex tagħmel ċert li huwa validu Bitmap, iżda issa aħna qed tmur biex tagħmel xi 24 00:01:40,130 --> 00:01:41,620 affarijiet daqsxejn differenti. 25 00:01:41,620 --> 00:01:44,870 Allura l-ewwel, aħna qed tmur jridu tiftakar il-wisa 'oriġinali' u għoli 26 00:01:44,870 --> 00:01:48,290 tal-infile, għaliex aħna qed tmur biex jinbidlu lilha għall-outfile. 27 00:01:48,290 --> 00:01:53,890 Allura issa ftakar li għal raġunijiet stramba bi.biheight, huwa negattiv, u 28 00:01:53,890 --> 00:01:58,670 sabiex l-għoli attwali, b'mod pożittiv, aħna jridu jieħdu l-valur assolut. 29 00:01:58,670 --> 00:02:02,580 >> Issa, l-ikkuttunar se tkun l-istess kalkolu kif kienet fil copy.c, 30 00:02:02,580 --> 00:02:06,060 jużaw il-wisa qodma, u issa aħna qed attwalment se jibdlu 31 00:02:06,060 --> 00:02:07,320 X'hemm fil-header tagħna. 32 00:02:07,320 --> 00:02:11,200 Allura aħna qed tmur biex jimmultiplikaw wisa tagħna billi n, peress li aħna qed skalar il-wisa billi 33 00:02:11,200 --> 00:02:15,100 n, immoltiplika l-għoli mill-n, peress li aħna qed skalar minn n, u issa għandna 34 00:02:15,100 --> 00:02:19,250 il-kalkolu ta 'padding ġdida ibbażata fuq il-wisa ġdid. 35 00:02:19,250 --> 00:02:21,840 >> Allura issa għandna bżonn li jibdel uħud oqsma oħra fil header tagħna. 36 00:02:21,840 --> 00:02:26,890 Bi.biSizeImage suppost tkun il- daqs tal-bytes kollha fil-pixels 37 00:02:26,890 --> 00:02:28,520 u padding ta 'l-immaġini. 38 00:02:28,520 --> 00:02:34,190 U għalhekk l-daqs ta 'ringiela waħda ta' tagħna immaġini huwa daqs tal RGB triplu, id-daqs 39 00:02:34,190 --> 00:02:39,430 ta 'pixel wieħed, darbiet in-numru pixels fir-ringiela, kif ukoll il-ikkuttunar fuq 40 00:02:39,430 --> 00:02:40,910 l-aħħar tal-filliera. 41 00:02:40,910 --> 00:02:45,200 U allura aħna qed tmur biex timmultiplika din minn valur assolut ta 'għoli tagħna sabiex inġibu 42 00:02:45,200 --> 00:02:48,350 in-numru totali ta 'bytes fid-data immaġini. 43 00:02:48,350 --> 00:02:53,050 bf.bfSize huwa biss in-numru totali ta 'bytes fir image data tagħna, sabiex 44 00:02:53,050 --> 00:02:56,530 bi.biSizeImage, flimkien mal- daqs tal headers tagħna. 45 00:02:56,530 --> 00:02:59,850 Għalhekk, billi żżid fuq id-daqs tal-fajl Bitmap header, u d-daqs ta 'info Bitmap 46 00:02:59,850 --> 00:03:00,800 header, OK. 47 00:03:00,800 --> 00:03:03,170 Hekk li kollox għandna bżonn li bidla fl headers tagħna. 48 00:03:03,170 --> 00:03:07,020 Issa aħna ser jiktbu l-header tal-fajl Bitmap li outfile tagħna, u info Bitmap tagħna 49 00:03:07,020 --> 00:03:09,880 header għall outfile tagħna, u issa aħna lesti biex tibda tmur 50 00:03:09,880 --> 00:03:11,990 matul l-pixels attwali. 51 00:03:11,990 --> 00:03:15,720 >> Hekk irridu jtenni fuq scan linji tal-infile'S. 52 00:03:15,720 --> 00:03:17,730 Allura aħna tixtieq li jtenni fuq oldheight. 53 00:03:17,730 --> 00:03:20,830 Dan huwa għaliex għandna bżonn li tiftakar il- għoli oriġinali, qabel we jibdlu 54 00:03:20,830 --> 00:03:23,040 u mqassma lilha mill n. 55 00:03:23,040 --> 00:03:27,810 Issa aħna qed tmur biex jaqra waħda ringiela tat-infile fi 56 00:03:27,810 --> 00:03:30,630 buffer ta 'daqs oldwidth. 57 00:03:30,630 --> 00:03:36,190 Allura hawn, aħna qed freading daqs tal RGB tripla, pixel wieħed, u l-wisa antika ta ' 58 00:03:36,190 --> 00:03:39,760 minnhom mill-infile fis buffer tagħna. 59 00:03:39,760 --> 00:03:43,480 U li għaddej biex tkun sħiħa ringiela f'dan il firxa. 60 00:03:43,480 --> 00:03:50,390 Allura issa, irridu li jtenni n darbiet biex Stampa din il-filliera li outfile tagħna n darbiet. 61 00:03:50,390 --> 00:03:52,510 U hekk dan huwa dak li dan loop qed tagħmel. 62 00:03:52,510 --> 00:03:57,910 Dan loop ġewwa huwa mtennija fuq l- ringiela innifsu, fuq il-firxa, l-istampar 63 00:03:57,910 --> 00:04:00,710 kull pixel fil-firxa n darbiet. 64 00:04:00,710 --> 00:04:04,510 Allura l-element 0 qiegħed jiġi stampat n drabi, l-ewwel element qed 65 00:04:04,510 --> 00:04:05,660 stampati n darbiet. 66 00:04:05,660 --> 00:04:10,820 U thats it-tip ta 'kif aħna qed tmur biex orizzontalment skala kbira fil-outfile, u 67 00:04:10,820 --> 00:04:13,390 dan loop, peress li aħna qed looping n drabi, huwa kif aħna qed tmur biex 68 00:04:13,390 --> 00:04:15,580 iskala vertikalment. 69 00:04:15,580 --> 00:04:19,850 >> Down hawn, naraw li għandna bżonn li jiżdiedu l-ikkuttunar fl-aħħar ta 'kull ringiela. 70 00:04:19,850 --> 00:04:25,050 C'est pourquoi dan huwa ġewwa l-għar loop thats istampar u l-ringieli n ta 'ftit 71 00:04:25,050 --> 00:04:28,400 dan filliera waħda mill-infile. 72 00:04:28,400 --> 00:04:32,150 Imbagħad stabbiliti hawn, jien ser skip fuq l-ikkuttunar fil-infile, peress li ladarba 73 00:04:32,150 --> 00:04:34,560 aħna qed isir ma 'ringiela waħda mill- infile, aħna ma jimpurtahom dwar 74 00:04:34,560 --> 00:04:35,290 dak l-ikkuttunar kien. 75 00:04:35,290 --> 00:04:37,110 Aħna biss trid li tikseb l-tieni ringiela. 76 00:04:37,110 --> 00:04:40,870 U allura aħna ser loop lura u jagħmlu dak kollu dan jerġa għat-tieni ringiela. 77 00:04:40,870 --> 00:04:44,406 >> Fl-aħħarnett, ladarba aħna qed isir b'dak kollu li, nistgħu tagħlaq il infile, qrib 78 00:04:44,406 --> 00:04:47,430 l outfile, u r-ritorn 0 għaliex aħna qed isir. 79 00:04:47,430 --> 00:04:50,330 >> Jisimni Rob, u dan kien resize. 80 00:04:50,330 --> 00:04:54,934 >> [Daqq tal-mużika]