[Predvaja glasba] ROB Bowden: Živjo, jaz sem Rob, dajmo poskusite to na za velikost. Torej, spet se bo začela s v bistvu kopija copy.c, in narediti nekaj sprememb. Opomba takoj opazimo spremembo, kjer je Namesto preverjanje, da vidim, če argc ni enak 3, smo želeli preveriti če argc ni enako 4, od Zdaj smo ne samo ob v INFILE in outfile, vendar smo tudi ob v n, kar je znesek, ki smo luščenje izvirno sliko s. Ko smo prepričani, da smo lahko samo pretvorbo n na celo število pomočjo atoi. Torej, zdaj gremo ustvariti nekaj vzdevki, samo pokličite argv 2 INFILE, in argv 3 outfile, ker argv 2 in argv 3 niso zelo koristne imena. Zdaj želimo, da preverite, ali je n v mejah pričakujemo, da spec določa, da če je manjša ali enak nič, ali večja od 100, nato pa, da je neveljavna resize dejavnik, in bi morali opozoriti uporabnika na to. Ko bomo onkraj tega, da smo lahko končno odprli naše INFILE, zato moramo do napak, preverite, da odprtina ni ne iz nekega razloga. Prav tako moramo odpreti našo OUTFILE, in spet napaka preverite, da nisem ne iz nekega razloga. Vendar se prepričajte, če odprtje outfile ni uspelo, da smo morali zapreti INFILE, ki je že odprta. Torej, ob predpostavki, da ne bo propadel, potem mi bomo - tako kot v copy.c-- bom prebral v glavi od INFILE. Bomo prepričajte, da je veljavna bitna, zdaj pa bomo še nekaj stvari nekoliko drugače. Torej, najprej bomo želeli Spomnim se izvirno širino in višino v INFILE, ker gremo na se ga spreminja v izhodna_datoteka. Torej sedaj, ne pozabite, da za čudnih razlogov bi.biheight, je negativna, in tako da dejanska višina, pozitivna, smo želeli, da absolutno vrednost. Zdaj, oblazinjenje se bo enaka izračun, kot je bilo v copy.c, po stari širino, in zdaj smo dejansko dogaja, da spremenite , kar je v naši glavi. Torej bomo pomnožite našo širino, ki jih n, saj smo povečanje širine, ki jih n, pomnožite višino zn, ker smo luščenje zn, in zdaj imamo Izračun za novo oblazinjenje temelji na novi širine. Torej sedaj moramo spremeniti nekatere druga področja v naši glavi. Bi.biSizeImage naj bi Velikost vseh bajtov v pik in oblazinjenje slike. Tako velikost eni vrstici našega Slika je velikost RGB triple, velikost enega samega piksla, krat število točk zapored, plus oblazinjenje na konca vrste. In potem bomo pomnožite s Absolutna vrednost našega višine, da bi dobili Skupno število bajtov v slikovnih podatkov. bf.bfSize je samo skupno število bajtov v naših slikovnih podatkov, tako da bi.biSizeImage, plus velikost naših glavah. Torej, dodal na velikost datoteke bitnih Glava in velikost bitne slike info glava, OK. Tako da je vse, kar potrebujemo, da spremeniti v naših glavah. Sedaj bomo napisali glavo bitno datoteko na naše izhodna_datoteka, in naš info bitne Glava za naše izhodna_datoteka, in zdaj smo pripravljeni za začetek bo na dejansko pik. Tako želimo ponoviti čez skeniranih vrstic v INFILE je. Tako želimo ponoviti čez oldheight. To je razlog, zakaj smo potrebovali, da se spomnimo Prvotni višina, preden smo ga spremenite in ga zmanjšati s n. Zdaj bomo prebrali en sam vrstica INFILE v buffer velikosti oldwidth. Torej, tukaj, smo freading velikost RGB triple, en piksel, in staro širina jim od INFILE v naši buffer. In to se dogaja, da se celotna veslati v tem polju. Torej sedaj, želimo ponoviti n-krat na natisni to vrstico na naši izhodna_datoteka n-krat. In tako da je tisto, kar ta zanka počne. Ta notranja zanka ponavljanjem preko se vrstica, preko diod, tiskanje vsak pixel v matriki n-krat. Torej je Ničti element, ki se tiska n-krat, je prvi element čemer tiskani n-krat. In to je nekako, kako bomo vodoravno lestvico v izhodna_datoteka, in ta zanka, saj smo zanka n krat, je, kako bomo vertikalno lestvico. Tu spodaj, vidimo, da moramo dodati oblazinjenje na koncu vsake vrstice. Zato je to v notranjosti za zanke da je tiskanje z n vrstic samo to ena vrstica od INFILE. Potem sem dol, bom preskočiti oblazinjenje v INFILE, saj enkrat smo končali z eno vrsto INFILE, mi ni mar kaj je bilo oblazinjenje. Pravkar smo želeli priti na drugi vrsti. In potem bomo zanko nazaj in storiti vse Tudi to v drugi vrsti. Nazadnje, ko smo končali z vsem tem, lahko zaprete INFILE, blizu outfile, in povratek 0, ker smo končali. Moje ime je Rob, in to je bila velikost. [Predvaja glasba]