[MUSIC Playing] ROB BOWDEN: Szia, én vagyok Rob, most próbáld ezt a méret. Tehát ismét fog kezdeni alapvetően egy példányt a copy.c, és hogy néhány változtatást. Megjegyzés azonnal látunk változást, ahol a ahelyett, hogy ellenőrzi, hogy ha argc nem egyenlő 3, szeretnénk ellenőrizni ha argc nem egyenlő 4, mivel Most mi nem csak vesz egy infile és a kimeneti fájl, de mi is vesz a n, ami az az összeg, hogy mi vagyunk méretezés az eredeti képet. Ha nem vagyunk biztosak az, hogy mi csak konvertálni n egy egész szám segítségével atoi. Szóval, most megyünk, hogy egyfajta álnevek, csak hívja argv 2 infile, és argv 3 outfile, mert argv 2. és argv 3 nem túl segítőkész neveket. Most azt szeretnénk, hogy győződjön meg róla, n határain belül arra számítunk, így a spec kimondja, hogy ha ez kisebb vagy nullával egyenlő, vagy nagyobb, mint 100, akkor ez érvénytelen átméretezés tényező, és meg kell figyelmeztetni a felhasználót, hogy a. Ha túl vagyunk, ami azt is kinyissa a bemeneti fájl, és szükségünk van a hiba győződjön meg arról, hogy a nyitás nem sikerül valamilyen okból. Azt is meg kell nyitni a kimeneti fájl, és ismét hiba győződjön meg arról, hogy nem mulasztotta valamilyen okból. De biztos, hogy a megnyitón a outfile nem, hogy meg kell zárni a bemeneti fájl, amelyet már megnyitott. Tehát, feltételezve, hogy nem sikerül, akkor we're - akárcsak copy.c, - majd olvasni a fejlécben a bemeneti fájl. Megyünk, hogy megbizonyosodjon arról, hogy ez egy érvényes bitmap, de most fogunk némi a dolgok egy kicsit másképp. Tehát az első, mi szeretne majd emlékszem, az eredeti szélesség és magasság A bemeneti fájl, mert fogunk változik, hogy a kimeneti fájl. Tehát most ne feledje, hogy a furcsa okból bi.biheight, negatív, és így a tényleges magasság, pozitív, akkor szeretné, hogy az abszolút érték. Most, a padding lesz ugyanaz számítás mint volt copy.c, a régi szélességét, és most vagyunk valóban meg fog változni Mi van a fejlécben. Így fogjuk szaporodnak a szélességet n, hiszen mi vagyunk méretezés a szélességet n, szorozza meg a magasságot n, mert vagyunk méretezés n, és most már A számítás új padding alapján az új szélességét. Tehát most meg kell változtatni más területeken a fejlécben. Bi.biSizeImage állítólag a mérete az összes bájt a képpontok és padding a kép. És így a méretét egyetlen sor a mi kép mérete RGB hármas, a méret egy pixel, annyi pixel egy sorban, valamint a padding a a végén a sorban. És akkor mi lesz, hogy sokszorozza meg, hogy a abszolút értéke a magasság, hogy a bájtok számát a képadatokat. bf.bfSize csak az összes byte-ok a képadatok, így bi.biSizeImage, valamint a mérete a fejlécet. Tehát, hozzátéve, a mérete bitmap fájl fejléc, és méretét bitmap információkat header, OK. Szóval ez minden, amit kell, hogy változás a fejléc. Most fogjuk írni a bitmap fájl fejlécében hogy a kimeneti fájl, és a mi bitmap információkat header, hogy a kimeneti fájl, és most készen állunk, hogy kezdeni fog mint a tényleges pixel. Így akarunk végighaladni A bemeneti fájl szkennelési vonalak. Tehát szeretnénk iterációkhoz oldheight. Ezért szükséges, hogy emlékezzen a eredeti magasságát, mielőtt változtassa meg és skálázott azt n. Most fogunk olvasni egy sorban a bemeneti fájl egy buffer méret oldwidth. Tehát itt, mi freading mérete RGB hármas, egy pixel, és a régi szélessége őket a bemeneti fájl a mi puffer. És ez lesz az egész sor ebben a tömbben. Tehát most, szeretnénk iterációkhoz n-szer, hogy nyomtassa ki ezt a sort a mi outfile n-szer. És ez az, amit ez a hurkot csinál. Ez a belső hurok iterációjával felett sorban is, mint a tömb, nyomtatás minden egyes pixel a tömb n-szer. Így a nulladik elem nyomtatása n-szer, az első elem, hogy nyomtatott n-szer. És ez a fajta, hogy hogyan fogunk vízszintes skála a kimeneti fájl, és ez a hurok, hiszen mi vagyunk a ciklusok n alkalommal, hogy hogyan fogjuk függőleges skálán. Itt lent, azt látjuk, hogy mi kell hozzá a kitöltés végén minden sorban. Ez az, amiért ez a for ciklus ami kinyomtatni a n sorok csak ez az egy sort a bemeneti fájl. Aztán itt, fogok kihagyni A padding a bemeneti fájl, mert ha mi történik egy sort a infile, nem érdekel amit a padding volt. Csak azt akarjuk, hogy a második sorban. És aztán visszafordul, és tegyenek meg mindent ez megint a második sorban. Végül, miután végeztünk minden, tudjuk zárni a bemeneti fájl, szoros A kimeneti fájl, és vissza 0, mert végeztünk. A nevem Rob, és ez volt az átméretezés. [MUSIC Playing]