>> [Muzikavimo]
>> ROB Bowden: Sveiki, aš Robas, galime pabandykite tai jų dydį.
Taigi, mes vėl ketiname pradėti iš esmės iš copy.c kopija, ir
padaryti keletą pakeitimų.
Pastaba karto matome pokyčius, kur vietoj patikrinti, pamatyti, jei
argc nėra lygūs 3, norime patikrinti jei argc nėra lygi 4, nes
Dabar mes ne tik atsižvelgiant į INFILE ir outfile, bet mes taip pat atsižvelgiant į
n, tai suma, kurią mes mastelio originalų vaizdą.
Kai mes tikri, kad mes galime tik konvertuoti n iki sveikojo skaičiaus, naudojant atoi.
>> Taigi, dabar mes ketiname sukurti kai slapyvardžiai, tiesiog paskambinkite argv 2 INFILE ir
argv 3 outfile, nes argv 2 ir argv 3 nėra labai naudinga, pavadinimus.
Dabar mes norime įsitikinkite, n per greitai tikimės, todėl
spec nurodoma, kad, jei jis mažesnis arba lygi nuliui, arba didesnis nei 100,
tada tai negalioja resize veiksnys, ir mes turime įspėti, kad, kad vartotoją.
>> Kai mes po visų, kad mes galime pagaliau atidaryti mūsų infile, ir mes turime
klaidos įsitikinkite, kad atidarymas nepamiršo dėl kokios nors priežasties.
Mums taip pat reikia atidaryti mūsų outfile ir vėl klaidos įsitikinkite, kad
nepamiršo dėl kokios nors priežasties.
Tačiau būkite tikri, jei iš atidarymo outfile nepavyko, kad mes reikia uždaryti
INFILE, kuri jau buvo atidaryta.
>> Taigi, darant prielaidą, kad nepamiršo, tada Labiausiai klausomos - tiesiog kaip copy.c--
ketinate skaityti antraštę iš INFILE.
Mes ketiname įsitikinkite, kad tai galioja rastras, bet dabar mes ketiname padaryti kai
viskas šiek tiek kitaip.
Taigi, pirmiausia, mes ketiname norite prisiminti originalų plotį ir aukštį
iš INFILE, nes mes ketiname keičiasi jį už outfile.
Taigi dabar prisimenu, kad keistų priežasčių bi.biheight, yra neigiamas, ir
todėl faktinis aukštis, ir teigiamas, mes nori imtis absoliučią vertę.
>> Dabar, apdaila bus tas pats Apskaičiuojant, kaip tai buvo copy.c,
naudojate seną plotį, ir dabar mes tikrųjų ketiname pakeisti
Kas mūsų antraštėje.
Taigi, mes ketiname dauginti mūsų plotį n, nes mes mastelio plotį
n, padauginkite aukštį n, nes mes padidinant iš n, ir dabar mes turime
naujos išklojimui skaičiavimas pagal naują pločio.
>> Taigi dabar mes turime pakeisti kai kitų sričių mūsų antraštėje.
Bi.biSizeImage turėtų būti dydis visų pikselių baitų
ir apdaila iš paveikslėlio.
Ir taip vieną eilutę iš mūsų dydis vaizdas yra dydžio RGB triviečiai, dydis
iš vieno pikselio, kartų skaičiaus taškų iš eilės, plius ne prikimšti
iš eilės pabaigos.
Ir tada mes ketiname daugintis, kad absoliuti vertybė mūsų aukštyje gauti
bendras baitų skaičius ir vaizdo duomenų.
bf.bfSize yra tik bendras skaičius baitų mūsų vaizdiniai duomenys, todėl
bi.biSizeImage plius dydis mūsų antraštes.
Taigi, pridedant į bitmap failo dydis antraštėje, o dydis bitmap info
antraštė, Gerai.
Štai viskas, ką reikia keisti mūsų antraštes.
Dabar mes rašyti bitmap failo antraštę mūsų outfile ir mūsų bitmap info
header mūsų outfile, o dabar mes pasiruošę pradėti vyksta
per faktinių pikselių.
>> Taigi, mes norime pakartoti per į infile savo nuskaitymo eilučių.
Taigi, mes norime pakartoti per oldheight.
Štai kodėl mums reikia prisiminti, originalus aukštis, kol mes jį pakeisti
ir masto jį n.
Dabar mes ketiname skaityti vieno eilutė INFILE į
buferio dydis oldwidth.
Taigi čia mes freading dydis RGB triviečiai, vienas pikselis, ir seni plotis
juos iš INFILE į mūsų buferis.
Ir tai bus visa eilutėje šiame masyve.
Taigi, dabar mes norime pakartoti n kartų spausdinti šią eilutę į mūsų outfile n kartų.
Ir todėl, kad tai, ką šis ciklas daro.
Šis vidinis kontūras iteravimu per eilutėje pati, per masyvo, spauda
kiekvienas pikselis masyve n kartų.
Taigi nulinis elementas yra atspausdintas n kartų, pirmasis elementas yra
atspausdintas n kartų.
Ir tai tarsi kaip mes ketiname horizontaliai mastelį į outfile ir
šis ciklas, nes mes kilpų n kartų, tai, kaip mes ketiname
vertikaliai skalė.
>> Žemyn čia matome, kad mes turime pridėti kiekvienos eilutės pabaigoje apdaila.
Štai kodėl tai yra dėl kilpa viduje tai atspausdinti visas gautas n eilučių tiesiog
tai viena eilutė iš INFILE.
Tada žemyn čia, aš ruošiuosi praleisti į INFILE apdaila, nes kai
baigsime su vienu eilės INFILE, mes nerūpi
kas prikimšti buvo.
Mes tiesiog norime patekti į antrą eilutę.
Ir tada mes kilpa atgal ir padaryti viską, tai vėl antroje eilėje.
>> Galiausiai, kai baigsime su visais, kad, mes galime uždaryti infile, netoli
outfile ir grąžinimas 0, nes mes padaryti.
>> Mano vardas yra Rob, ir tai buvo resize.
>> [Muzikavimo]