>> [MUSIC Playing]
>> ROB BOWDEN: Szia.
Én Rob és hagyja mérete ezt a problémát.
Így fogunk kezdeni copy.c mint sablon, de mi lesz
hogy jó néhány változás.
>> Most már látjuk, mi rögtön, hogy egy változás, ahol már nem ellenőrzi
a mi RXC nem egyenlő 3, de most mi ellenőrzés rc nem egyenlő 4.
Mivel mi is szeretne venni, az Amellett, hogy az a fájlt, és ki fájlokat
érveket, f ami lesz ez faktor, amellyel mi méretezés.
>> Tehát, ha nem vagyunk biztosak, hogy szeretnénk A s szkennelés f átalakítani a húr
argv1 egy úszó.
És meg fogjuk tárolni hogy tényező.
Ez a kiegészítő karakter van meggyőződve arról, hogy mi valójában nem belépő
olyasmi, mint 1.4 ABC a parancssorban.
>> Most megyünk, hogy egyfajta alias mivel a RV2 és RV3 nem
nagyon hasznos neveket.
Mi ahelyett, hívni fog őket a fájlt, és ki a fájl.
Most megyünk, hogy megbizonyosodjon arról, hogy az a tényező valójában érvényes.
Tehát, ha tényező kisebb, mint vagy egyenlő nulla vagy nagyobb, mint 100, akkor, mint egy
A spec, el kell utasítanunk ezt a tényezőt.
>> Ha biztosak vagyunk benne, hogy ez jó, most már tudjuk nyissa meg a N fájlt, és meg kell, hogy
arról, hogy sikeresen megnyitotta.
Ha ez nem, hogy vissza fog térni null.
Fogunk nyissa ki a fájlt.
És ismét, azt szeretné, hogy ellenőrizze, hogy a róla, hogy sikeresen megnyitotta.
És ha nem sikerült megnyitni, akkor azt is meg kell bizonyosodni arról, hogy lezárja
n fájlt, amely eredetileg sikeresen nyitott, vagy pedig van egy
memóriavesztés.
>> Most fogunk olvasni a bitmap fájl fejlécét, és bitmap információkat
Fejes n fájlt.
Megyünk, hogy megbizonyosodjon arról, hogy az n A fájl érvényes bitmap.
OK.
>> Tehát most fogunk kezdeni hogy néhány változtatást.
Tehát azért, mert mi lesz a változó dolog, először szeretnénk emlékezni a
régi szélessége az n fájlt.
Azt akarjuk, hogy ne feledje, a régi párnázata n fájl ugyanazt a számítást
A copy.c.
>> És most mi fog változni A bitmap infó fejlécét.
És mi megszorozzuk mind a szélesség és a magasságot tényező, hiszen
ez az, amit mi a méretezést.
Megyünk, hogy meghatározzák a új padding a fájl
az új szélességet.
És mi fogja meghatározni az új méretét a képet száma
byte-egy sorban, amely fogja a képpontok számát, hogy az egymás után
szor akkora, mint egy pixel, plusz a bájtok száma padding végén
, hogy a sorban, majd megszorozzuk minden a sorok számát, hogy mi van.
Szóval ez a bájtok számát van a mi képadatok.
>> Bf.Bfsize most lesz a szám byte-ok a mi képünkre béta plus
A méret a fejlécet.
Tehát molett bitmap fájl fejlécében és méretét bitmap infó fejlécét.
OK.
Szóval ez a mi fejlécet.
Tudjuk írni a fájlt, fej és infó fejlécét, hogy a ki
fájlt, és mi a jó.
>> Most itt az ideje, hogy valóban írásban a pixel
adatokat az out fájlt.
Megyünk, hogy állapítsa meg a buffer méret old szélesség RGB háromágyas, és mi
majd, hogy állapítsa meg a változó neve sorban zsibbad, ami fogjuk
eredetileg egyenlő negatív 1..
Majd meglátjuk, hogy mi lesz a hogy annak érdekében, hogy nyomon követni, hogy mi
sor jelenleg betöltött ebbe a puffer.
OK.
>> Tehát most ellentétben a standard változat, ahelyett, hogy az iterációt az a
fájl fogunk végighaladni az egyes sor az out fájlt, és kitalálni,
amely sort a fájlba szeretnénk elhelyezni ebben a sorban az out fájlt.
Tehát az iterációt minden sora a ki fájl az új magasságot, mi vagyunk az első
fogja meghatározni, a sort a régi fájlt fogunk használni, ami vagyunk
fog tenni azáltal, hogy ezt a jelenlegi sor osztva tényező.
Szóval ez megy, hogy nekünk a sor a régi fájlt akarunk.
>> Tehát most, ha sor zsibbad nem egyenlő a régi y, mi lesz, hogy olvassa el a sort
hogy azt akarjuk, a mi cur sorba puffer.
Szóval, hogyan fogjuk csinálni?
Először is, mi lesz, hogy kitaláljuk, a helyzetben, hogy kezdődik, hogy sorban a
eredeti fájlt.
Úgy, hogy az lesz múlt minden a mi fejléc és
Most már a régi y sorokat.
>> És így, hogy hány bájt van egy sorban?
Ismét mérete RGB hármas alkalommal régi szélesség plusz régi padding, hogy ez a
byte-ok száma egy sorban.
És azt akarjuk, hogy hagyja már a régi y sorokat.
Így fogunk f keresni, és mi vagyunk segítségével keresik meg kell kezdeni a
elején egy fájlt.
Fogunk f célja, hogy ezt a pozíciót a fájlban, hogy minket a
kezdve a sor akarunk , hogy olvassa el a mi puffer.
>> Fogunk beállítani sorban zsibbadt egyenlő régi y.
Tehát most, ha visszafordul, és azt akarjuk, hogy Ezzel az ugyanabban a sorban a mi out fájlt,
akkor nem fogunk olvasni be újra feleslegesen.
Szóval tényleg, sor zsibbad a csak egy optimalizálás.
>> Végül fogunk olvasni a aktuális sor a régi szélesség RGB háromágyas
hogy szeretnénk az eredeti fájlt.
Tehát most akt sor tartalmazza a képpontok az eredeti fájlt szeretnénk
írjon az out fájlt.
Tehát most, csakúgy, mint a fenti, hanem iterációjával át a régi fájlt, szükségünk van
hogy végighaladni az új fájlokat sorokat.
Hát itt van, ahelyett, hogy az iterációt minden a régi képpont hogy akt sorban,
akarunk végighaladni az összes képpontok új fájl e
adott sorban.
>> Miért akarunk csinálni?
Mert azt látjuk, hogy itt nem vagyunk valóban feltétlenül az összes
pixel az eredeti fájlt.
Mert ha mi zsugorodik, talán valóban ki akarja hagyni a pixel.
És azt látjuk, hogy ez a -
x osztva tényező -
szorosan követi itt, ahol azt mondjuk, hogy y osztva tényező, hogy kitaláljuk, hogy
a régi y-edik sorban megfelel az y-adik sor ebben az új fájlt.
>> Most fogunk írni az összes a pixel a régi sor
a mi új sort.
Miután tettünk, hogy mi kell, hogy csak fel a kitöltés végén a sor
és mi loop vissza, és továbbra is az összes sort a mi új fájlba.
A végén meg kell zárni a régi fájlt, zárja be az új fájlt, és vissza
nulla, mert minden rendben ment.
>> A nevem Rob, és ez volt a szünet.
>> [MUSIC Playing]