>> [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]