[Musiikki soi] ROB BOWDEN: Hei, olen Rob, katsotaanpa kokeile tätä on koon. Joten, käymme jälleen aloittaa pohjimmiltaan kopio copy.c, ja tehdä muutamia muutoksia. Huomaa heti näemme muutoksen, jossa sen sijaan tarkistaa, jos argc ei yhtä 3, haluamme tarkistaa jos argc ei ole yhtä kuin 4, koska Nyt emme vain ryhtyy infile ja outfile, mutta olemme myös ryhtyy n, joka on summa, jonka olemme skaalaus alkuperäisen kuvan. Kun olemme varmoja, että voimme vain muuntaa n on kokonaisluku skaalataan atoi. Joten, nyt aiomme luoda jonkinlaista peitenimet, soita argv 2 infile, ja argv 3 outfile, koska argv 2 ja argv 3 eivät juurikaan auta nimiä. Nyt haluamme varmista n on rajoissa odotamme, niin spec täsmennetään, että jos se on alle tai nolla, tai suurempi kuin 100, niin se on virheellinen resize tekijä, ja meidän pitäisi varoittaa käyttäjää siitä. Kun olemme yli kaiken, että voimme vihdoin avaamme infile, ja me tarvitsemme virheille varmista, että avaaminen ei onnistu jostain syystä. Meidän on myös avata outfile, ja jälleen virhe varmista, että ei onnistu jostain syystä. Mutta muista, jos avaaminen outfile epäonnistui että meidän täytyy sulkea infile, joka oli jo avattu. Niin, olettaen, että ei onnistu, niin Me olemme - aivan kuten copy.c-- aion lukea otsikkoon alkaen infile. Aiomme varmistaa se voimassa bittikartta, mutta nyt aiomme tehdä joitakin asioita hieman eri tavalla. Joten ensimmäinen, aiomme haluavat Muistan alkuperäinen leveys ja korkeus ja infile, koska aiomme muutamme sitä outfile. Joten nyt muistaa, että kumman syystä bi.biheight, on negatiivinen, ja joten todellinen korkeus, positiivinen, me halua ottaa itseisarvo. Nyt, täyte tulee olemaan sama laskelma kuin se oli copy.c, käyttämällä vanhaa leveys, ja nyt olemme todella aikoo muuttaa Mitä meidän otsikossa. Joten aiomme moninkertaistaa leveyttä n, koska olemme skaalaus leveys n, kerrotaan korkeutta n, koska olemme skaalaus n, ja nyt meillä on laskenta uusi pehmuste perustuu uusi leveys. Joten nyt meidän täytyy muuttaa joitakin muilla aloilla meidän otsikossa. Bi.biSizeImage on tarkoitus olla koko on kaikki tavua pikseliä ja täyte kuvan. Ja niin koko yhden rivin meidän kuva on koko RGB-kolminkertainen, koko yhden pikselin, kertaa enemmän pikseliä peräkkäin, plus sisennysarvot rivin päässä. Ja sitten me aiomme kerrotaan, että itseisarvo pituutemme saada tavujen kokonaismäärä kuvatiedoissa. bf.bfSize on vain kokonaismäärä tavujen meidän kuvadatan, joten bi.biSizeImage, plus koko meidän otsikot. Joten, lisäämällä koosta bittikarttatiedoston header, ja koko bitmap info header, OK. Niin, että meidän tarvitsee muuttaa meidän otsikot. Nyt me kirjoittaa bittikarttatiedoston otsikko meidän outfile, ja meidän bitmap tiedot header meidän outfile, ja nyt olemme valmiita aloittamaan menossa yli todellisen pikseliä. Joten haluamme kerrata yli infile n pyyhkäisyjuovaa. Joten haluamme kerrata yli oldheight. Siksi meidän piti muistaa alkuperäinen korkeus, ennen kuin muutamme sitä ja skaalata se n. Nyt aiomme lukea yhden rivi infile osaksi puskurin kokoa oldwidth. Joten tässä, me freading koko RGB triple, yksi pikseli, ja vanhoja leveys ne infile meidän puskuriin. Ja se tulee olemaan koko rivi tässä array. Joten nyt haluamme kerrata n kertaa tulosta tämä rivi meidän outfile n kertaa. Ja niin sitähän tämä silmukka on tekemässä. Tämä sisäinen silmukka iteroimalla yli soutaa itse yli array, tulostus jokaisen pikselin array n kertaa. Joten zeroth elementti tulostetaan n kertaa, ensimmäinen elementti on painetut n kertaa. Ja se on tavallaan, miten aiomme vaakasuoraan mittakaavassa outfile, ja Tämän silmukan, koska olemme silmukoiden n kertaa, miten aiomme vertikaalisesti mittakaavassa. Tänne, näemme, että meidän täytyy lisätä padding lopussa kunkin rivin. Siksi tämä on sisällä silmukan joka tulostaa n riviä vain tämä krs infile. Sitten tänne, aion ohittaa pehmuste infile, koska kerran olemme tehneet yhden rivin infile, emme välitä mikä täyte oli. Haluamme vain päästä toiseen riviin. Ja sitten me silmukka takaisin ja tehdä kaikki Tämän uudelleen toisessa rivissä. Lopuksi, kun olemme tehneet kaiken sen kanssa, voimme sulkea infile lähellä outfile, ja paluu 0, koska olemme tehneet. Nimeni on Rob, ja tämä oli resize. [Musiikki soi]