>> [Mūzikas atskaņošanai]
>> ROB BOWDEN: Hi.
Es esmu Rob un ļaujiet lieluma līdz šai problēmai.
Tāpēc mēs esam gatavojas sākt ar copy.c kā veidni, bet mēs ejam, lai būtu
padarot diezgan maz izmaiņas.
>> Tagad mēs redzam, mēs uzreiz padarot mainīt, ja mēs vairs pārbaudot
par mūsu RXC nav vienāds 3, bet tagad mēs pārbaudīt RC nav vienāds 4.
Tā mēs arī vēlamies iekļaut, jo papildinājums faila un no failiem
argumenti, f, kas būs šo koeficients, ar kuru mēs esam mērogošana.
>> Tātad, kad mēs esam pārliecināti, ka mēs vēlamies izmantot s skenēšanas f, lai pārvērstu string
argv1 uz apgrozāmos līdzekļus.
Un mēs ejam, lai saglabātu ka faktors.
Šis papildu raksturs, ir pārliecināties, ka mēs faktiski ienāk
kaut kas līdzīgs 1,4 ABC pie komandrindas.
>> Tagad mēs spēsim radīt dažas pseidonīmi Kopš RV2 un RV3 nav
Ļoti noderīgi vārdi.
Mēs esam, tā vietā, saukšu tos failā un ārā failā.
Tagad mēs ejam, lai pārliecinātos, ka Mūsu faktors bija faktiski derīga.
Tātad, ja koeficients ir mazāks par vai vienāds ar nulle vai lielāks par 100, kā vienu
spec, mums vajadzētu noraidīt šis faktors.
>> Kad mēs esam pārliecināti, ka tas ir labi, tagad mēs varam atvērt n failu, un mums ir jāizdara
pārliecināts, ka tas tika veiksmīgi atvērts.
Ja tā nav, ka atgriezīsies null.
Mēs ejam, lai atvērtu File.
Un atkal, mēs vēlamies pārbaudīt, lai padarītu pārliecināts, ka tas ir veiksmīgi atvērts.
Un, ja tā nav veiksmīgi atvērt, tad mums ir jābūt pārliecinātiem, lai aizvērtu
n failu, kas sākotnēji veiksmīgi atvērta, vai arī mums ir
atmiņas noplūde.
>> Tāpēc tagad mēs ejam lasīt bitkarte faila galvene un bitmap info
header no n faila.
Mēs ejam, lai pārliecinātos, ka n fails bija derīga bitmap.
OK.
>> Tāpēc tagad mēs esam gatavojas sākt veikt dažas izmaiņas.
Tāpēc, ka mēs ejam, mainās lietas, mēs vispirms vēlamies atcerēties
vecais platums n faila.
Mēs vēlamies atcerēties veco polsterējums n failu, izmantojot to pašu aprēķinu
No copy.c.
>> Un tagad mēs esam gatavojas mainīt bitmap info galvenes.
Un tāpēc mēs esam reizinot gan platumu un augstumu ar faktoru, jo
ka tas, ko mēs esam mērogošana līdz.
Mēs ejam, lai noteiktu Jaunais polsterējums no lietas materiāliem
izmantojot jaunu platumu.
Un mēs ejam, lai noteiktu jaunu attēla izmēra, izmantojot vairākus
bytes vienā rindā, kas notiek, lai būt pikseļu skaits minētajā rindā
reizes lielāka par pikseli plus skaits no polsterējuma baitu beigās
šīs rindas, un reizinot visu, kas ar rindu skaitu, kas mums ir.
Tātad tas ir baitu skaits mums ir mūsu attēla datiem.
>> Bf.Bfsize tagad būs skaitlis baitu mūsu attēla beta plus
lielumu mūsu galvenes.
Tāpēc plus izmērs bitmap failu galvenes un izmērs bitmap info galvenes.
OK.
Tātad tas ir tas mūsu galvenes.
Mēs varam rakstīt failu galvu un info header mūsu out
failu, un mēs esam labi.
>> Tagad ir pienācis laiks, lai sāktu reāli rakstot pikseļu
datus out failu.
Mēs ejam, lai deklarēt buferi izmēru vecais platums RGB trīskāršojas, un mēs esam
gatavojas atzīt mainīgo sauc rinda sastindzis, kas mēs spēsim
sākotnēji noteikts vienāds ar negatīvu 1.
Mēs redzam, ka mēs ejam, lai, izmantojot ka, lai sekotu tam, ko
rinda mēs šobrīd esam piekrauts šajā buferi.
OK.
>> Tāpēc tagad atšķirībā no standarta izdevums, vietā, atkārtojot nekā pie in
failu, mēs ejam, lai atkārtot pār otru rinda File un izdomāt
kas rinda failā mēs vēlamies vietu šajā rindā out failā.
Tātad, atkārtojot pār visiem rindas out failu, izmantojot jauno augstumu, mēs esam pirmais
notiek, lai noteiktu rindu old failu mēs esam gatavojas izmantot, ko mēs esam
gatavojas to darīt, ņemot vērā šo strāvu rindu dala ar koeficientu.
Tā, kas notiek, lai dotu mums rindu vecajā failā, ko mēs vēlamies.
>> Tāpēc tagad, ja rinda sastindzis nav vienāda veco y, mēs esam nāksies lasīt rindu
ka mēs vēlamies mūsu cur rindu buferis.
Tātad, kā mēs gatavojamies darīt?
Pirmkārt, mēs ejam, lai noskaidrotu pozīcija, kas sākas šo rindu
oriģinālo failu.
Tāpēc šī nostāja būs garām visiem mūsu galvenes un
Tagad pēdējo veco vec rindas.
>> Un tā, cik daudz baitu ir vienā rindā?
Atkal, lielums RGB trīsvietīgas reizes vecs platums plus vecā apdare, tā ka ir
baitu skaitu vienā rindā.
Un mēs gribam, lai izlaistu pagātnē veco vec rindas.
Tāpēc mēs esam gatavojas f meklēt, un mēs esam izmantojot cenšas komplekts, lai sāktu no
sākumā faila.
Mēs ejam, lai f censties šajā amatā failā, liekot mums
sākumā rindā mēs vēlamies lasīt mūsu bufera.
>> Mēs ejam, lai uzstādītu rindu sastindzis vienāds ar veco y.
Tāpēc tagad, ja mēs cilpu atpakaļ un mēs vēlamies, lai izmantot šo pašu rindu mūsu File,
tad mēs nebrauksim, lai lasītu tas atkal nevajadzīgi.
Tik tiešām, rinda sastindzis ir tikai optimizāciju.
>> Visbeidzot, mēs ejam, lai izlasītu par Pašreizējā rinda vecais platums RGB trīskāršojas
ka mēs vēlamies no sākotnējā faila.
Tāpēc tagad Cur rinda satur pikseļi no oriģinālo failu, ka mēs vēlamies, lai
rakstiet uz File.
Tāpēc tagad, tāpat kā iepriekš, tā vietā, lai atkārtojot pār veco failu, mums vajag
to atkārtot pār jaunajiem failiem rindās.
Arī šeit, tā vietā, atkārtojot visas vecās pikseļu ka cur rindā,
mēs vēlamies atkārtot pār visiem pikseļu mūsu jauno failu šajā
īpaši rinda.
>> Kāpēc mēs gribam to darīt?
Jo mēs redzam, ka mēs neesam faktiski obligāti jāizmanto visiem
pikseļu sākotnējā faila.
Jo, ja mēs sarūk, mēs varētu tiešām vēlaties izlaist pikseļi.
Un mēs redzam, ka šis -
x dala ar koeficientu -
cieši spoguļi šeit, kur mēs sakām y dala ar koeficientu, lai noskaidrotu, ka
vecā y-th rinda atbilst y-th rinda šajā jaunajā failā.
>> Tagad mēs esam gatavojas rakstīt visu šie pikseļi no vecā rindā
mūsu jaunā rindā.
Pēc tam, kad mēs esam darījuši, ka mums ir tikai nodot polsterējums beigās mūsu rindas
un mēs cilpu atpakaļ un turpināt visas rindas mūsu jaunu failu.
Gada beigās, mums ir nepieciešams slēgt mūsu veco failu, aizveriet savu jauno failu, un atgriešanās
nulle, jo viss gāja labi.
>> Mans vārds ir Rob, un tas bija Recess.
>> [Mūzikas atskaņošanai]