[Daqq tal-mużika] ROB Bowden: Hi, jien Rob, ejja tipprova dan fuq għad-daqs. Allura, aħna darb'oħra ser tibda bil- bażikament kopja tal-copy.c, u jagħmlu ftit tibdiliet. Nota immedjatament naraw bidla, fejn minflok verifika biex tara jekk argc ma ugwali 3, irridu li jiċċekkjaw jekk argc ma ugwali 4, peress li issa aħna mhux biss tieħu fi infile u outfile, imma aħna wkoll qed tieħu fl n, li huwa l-ammont li aħna qed skalar l-immaġini oriġinali mill-. Ladarba aħna żgur ta 'dak, nistgħu biss jikkonvertu n għal integer użu atoi. Allura, issa aħna qed tmur biex joħolqu xi psewdonimi, biss sejħa ARGV 2 infile, u ARGV 3 outfile, minħabba ARGV 2 u ARGV 3 mhumiex ismijiet utli ħafna. Issa rridu li jivverifika sabiex ikun żgur n hija fil-limiti nistennew, sabiex il- spec jispeċifika li jekk huwa inqas minn jew żero, jew aktar minn 100, allura dak l-fattur resize invalidu, u għandna twissi lill-utent ta 'dak. Ladarba aħna qed hinn dak kollu li, nistgħu finalment tiftaħ infile tagħna, u għandna bżonn għal żball jivverifika sabiex ikun żgur li l- ftuħ ma naqasx milli għal xi raġuni. Għandna bżonn ukoll li tiftaħ outfile tagħna, u darb'oħra żball jivverifika sabiex ikun żgur li ma naqasx milli għal xi raġuni. Imma kun żgur jekk il-ftuħ tal- outfile naqset li għandna bżonn li tagħlaq l infile, li kien diġà miftuħa. Għalhekk, jekk wieħed jassumi li ma ifallu, we're - hekk kif fil copy.c-- ser jinqara fil-header mill-infile. Aħna qed tmur biex tagħmel ċert li huwa validu Bitmap, iżda issa aħna qed tmur biex tagħmel xi affarijiet daqsxejn differenti. Allura l-ewwel, aħna qed tmur jridu tiftakar il-wisa 'oriġinali' u għoli tal-infile, għaliex aħna qed tmur biex jinbidlu lilha għall-outfile. Allura issa ftakar li għal raġunijiet stramba bi.biheight, huwa negattiv, u sabiex l-għoli attwali, b'mod pożittiv, aħna jridu jieħdu l-valur assolut. Issa, l-ikkuttunar se tkun l-istess kalkolu kif kienet fil copy.c, jużaw il-wisa qodma, u issa aħna qed attwalment se jibdlu X'hemm fil-header tagħna. Allura aħna qed tmur biex jimmultiplikaw wisa tagħna billi n, peress li aħna qed skalar il-wisa billi n, immoltiplika l-għoli mill-n, peress li aħna qed skalar minn n, u issa għandna il-kalkolu ta 'padding ġdida ibbażata fuq il-wisa ġdid. Allura issa għandna bżonn li jibdel uħud oqsma oħra fil header tagħna. Bi.biSizeImage suppost tkun il- daqs tal-bytes kollha fil-pixels u padding ta 'l-immaġini. U għalhekk l-daqs ta 'ringiela waħda ta' tagħna immaġini huwa daqs tal RGB triplu, id-daqs ta 'pixel wieħed, darbiet in-numru pixels fir-ringiela, kif ukoll il-ikkuttunar fuq l-aħħar tal-filliera. U allura aħna qed tmur biex timmultiplika din minn valur assolut ta 'għoli tagħna sabiex inġibu in-numru totali ta 'bytes fid-data immaġini. bf.bfSize huwa biss in-numru totali ta 'bytes fir image data tagħna, sabiex bi.biSizeImage, flimkien mal- daqs tal headers tagħna. Għalhekk, billi żżid fuq id-daqs tal-fajl Bitmap header, u d-daqs ta 'info Bitmap header, OK. Hekk li kollox għandna bżonn li bidla fl headers tagħna. Issa aħna ser jiktbu l-header tal-fajl Bitmap li outfile tagħna, u info Bitmap tagħna header għall outfile tagħna, u issa aħna lesti biex tibda tmur matul l-pixels attwali. Hekk irridu jtenni fuq scan linji tal-infile'S. Allura aħna tixtieq li jtenni fuq oldheight. Dan huwa għaliex għandna bżonn li tiftakar il- għoli oriġinali, qabel we jibdlu u mqassma lilha mill n. Issa aħna qed tmur biex jaqra waħda ringiela tat-infile fi buffer ta 'daqs oldwidth. Allura hawn, aħna qed freading daqs tal RGB tripla, pixel wieħed, u l-wisa antika ta ' minnhom mill-infile fis buffer tagħna. U li għaddej biex tkun sħiħa ringiela f'dan il firxa. Allura issa, irridu li jtenni n darbiet biex Stampa din il-filliera li outfile tagħna n darbiet. U hekk dan huwa dak li dan loop qed tagħmel. Dan loop ġewwa huwa mtennija fuq l- ringiela innifsu, fuq il-firxa, l-istampar kull pixel fil-firxa n darbiet. Allura l-element 0 qiegħed jiġi stampat n drabi, l-ewwel element qed stampati n darbiet. U thats it-tip ta 'kif aħna qed tmur biex orizzontalment skala kbira fil-outfile, u dan loop, peress li aħna qed looping n drabi, huwa kif aħna qed tmur biex iskala vertikalment. Down hawn, naraw li għandna bżonn li jiżdiedu l-ikkuttunar fl-aħħar ta 'kull ringiela. C'est pourquoi dan huwa ġewwa l-għar loop thats istampar u l-ringieli n ta 'ftit dan filliera waħda mill-infile. Imbagħad stabbiliti hawn, jien ser skip fuq l-ikkuttunar fil-infile, peress li ladarba aħna qed isir ma 'ringiela waħda mill- infile, aħna ma jimpurtahom dwar dak l-ikkuttunar kien. Aħna biss trid li tikseb l-tieni ringiela. U allura aħna ser loop lura u jagħmlu dak kollu dan jerġa għat-tieni ringiela. Fl-aħħarnett, ladarba aħna qed isir b'dak kollu li, nistgħu tagħlaq il infile, qrib l outfile, u r-ritorn 0 għaliex aħna qed isir. Jisimni Rob, u dan kien resize. [Daqq tal-mużika]