>> [MUZIKO Ludanta]
>> ROB Bowden: Hi.
Mi Rob kaj ni grandeco tiun problemon.
Do ni tuj komencu per copy.c kiel ŝablonon, sed ni tuj estos
fari tre malmultaj ŝanĝoj.
>> Nun ni vidas ni tuj faras ŝanĝi kie ni ne plu kontrolanta
por nia rxc ne egalas 3, sed nun ni kontrolanta rc ne valoregalas 4.
Ĉar ni ankaŭ volas inkludi, en Krom la dosieron kaj eliri dosierojn
argumentoj, f kiu tuj estos ĉi faktoro, per kiu ni grimpi.
>> Do iam ni estas certa pri tio, ni volas uzi s scan f al konverti la kordo
argv1 al float.
Kaj ni tuj stoki ke en faktoro.
Tiu aldona signo estas certigi ke ni fakte ne eniri
iu kiel 1,4 ABC ĉe la komandlinio.
>> Nun ni iras por krei iun alias ekde RV2 kaj RV3 estas ne
tre helpema nomoj.
Ni, kontraŭe, irante voki ilin en dosiero kaj el dosiero.
Nun ni iras por certigi ke nia faktoro estis efektive validas.
Do se faktoro estas malpli ol aŭ egala al nulo aŭ pli granda ol 100, tiam kiel po
la specifon, ni devus malakcepti ke faktoro.
>> Kiam ni certas ke ĝi estas bona, nun ni povas malfermi la n-dosiero, kaj ni devas fari
certas, ke ĝi estis sukcese malfermita.
Se ne, kiu revenos nula.
Ni tuj malfermu el dosiero.
Kaj denove, ni volas kontroli por fari certe ĝi estas sukcese malfermita.
Kaj se ĝi ne sukcese malfermos, tiam ni ankaŭ bezonos esti certa por fermi
la n dosiero kiu origine sukcese malfermita, alie ni havas
memoro liko.
>> Do nun ni legos en la bitbildo dosiero kaplinio kaj bitmap info
header de la n-dosiero.
Ni iras por certigi, ke la n dosiero estis valida bitmap.
OK.
>> Do nun ni tuj komencu farante kelkajn ŝanĝoj.
Do ĉar ni tuj estos ŝanĝanta aĵoj, ni unue volas memori la
malnovan larĝeco de la n-dosiero.
Ni volas memori la malnovan Plenigado de la n dosieron per la sama kalkulo
el copy.c.
>> Kaj nun ni tuj ŝanĝos la bitmap info kaplinion.
Kaj tial ni multiplikante ambaŭ la larĝeco kaj la alto de faktoro ekde
tio estas, kion ni grimpi per.
Ni tuj determinas la nova Plenigado de la dosiero de
uzante la novan larĝa.
Kaj ni tuj determinas la novan grandeco de la bildo per la nombro de
bajtoj en unu vico, kiu kondukas al esti la nombro de rastrumeroj en tiu vico
fojoj la grandeco de pixel plus la nombro da bajtoj el Plenigado fine
de tiu vico, kaj multigante ĉiuj kiuj per la nombro de vicoj, ke ni havas.
Do tio estas la nombro de bitokoj ni havos en nia bildo datumojn.
>> Bf.Bfsize nun tuj estos la nombro de bajtoj en nia bildo beta plus
la grandeco de nia titolaj.
Do krom grandeco de bitmap dosieron kaplinio kaj grandeco de bitmap info kaplinion.
OK.
Do jen ĝi pro nia titolaj.
Ni povas skribi la dosieron kapon kaj info kaplinion al niaj ekster
fajliloj, kaj ni estas bonaj.
>> Nun estas tempo por komenci efektive verki la rastrumero
datumojn al la ekster-dosiero.
Ni tuj deklari buffer de grandeco malnovan larĝa RVB triopoj, kaj ni estas
tuj deklari variablon nomitan vico Numb, kio estas ni tuj
komence starigis egala al negativa 1.
Ni vidos, ke ni tuj povas uzi ke por teni spuro de kio
vico ni aktuale havas ŝarĝita en ĉi tiun bufro.
OK.
>> Do nun kontraŭe al la norma eldono, anstataŭ ripetanta super ĉe la en
dosiero, ni iras al persisti super ĉiu vico en la ekster-dosieron kaj elkompreni
kiu vico en la dosieron ni volas meti en ĉi tiu vico en la ekster-dosiero.
Do ripetanta super ĉiuj vicoj en la ekster dosieron per la nova alto, ni estas unue
tuj determinas la vico en la malnova dosieron ni tuj uzi, kio ni estas
tuj faros per prenante tiu fluo vico dividita per faktoro.
Por ke tuj donu al ni la vico en la malnova dosiero kiun ni deziras.
>> Do nun, se vico Numb ne egala malnovan y, Ni tuj devos legi la vico
ke ni deziras en nia nuna linio bufro.
Do kiel ni faros tion?
Unue, ni tuj ekkompreni la pozicio kiu komencas kiu vico en la
originala dosiero.
Do tiu pozicio tuj estos pasinteco ĉiuj niaj titolaj kaj
nun pasintaj malnovan y vicoj.
>> Kaj do, kiom da bitokoj Estas en unu vico?
Denove, grandeco de RVB triobla fojojn malnova larĝeco pli malnovaj Plenigado, do tio estas la
nombro da bajtoj en unu vico.
Kaj ni volas salti pasinteco malnovan y vicoj.
Do ni iras al f peti kaj ni estas uzante celas aron por komenci de la
komencante de dosiero.
Ni iras al f celas ĉi pozicio en la dosiero, metante nin en la
komencante de la vico ni volas legi en nia bufro.
>> Ni tuj starigis vicon Numb egala al malnovaj y.
Do nun, se ni buklo dorson kaj ni volas uzi tiun saman vicon en niaj ekster-dosiero,
tiam ni ne legos ĝin denove nenecese.
Do vere, vico Numb estas nur optimumigo.
>> Fine, ni legos en la aktuala vico la malnovan larĝa RVB triopoj
ke ni deziras de la originala dosiero.
Do nun nuna linio montras la rastrumeroj el la originalan dosieron kiu ni volas
skribu en la ekster-dosiero.
Do nun, nur ŝatis supre, anstataŭ ripetanta tra la malnova dosiero, ni bezonas
ĝi persisti super la novajn dosierojn vicoj.
Nu jen, anstataŭ ripetanta super ĉiuj el la malnova rastrumeroj, ke en nuna vico,
ni volas persisti super ĉiuj el la pixeles en nia nova dosiero en tiu
aparta vico.
>> Kial ni volas fari tion?
Ĉar ni vidas ĉi tie ke ni ne estas reale nepre uzi ĉiujn
pixeles en la originala dosiero.
Ĉar se ni ŝrumpanta, eblas ke reale volas preterpasi la rastrumeroj.
Kaj ni vidas, ke tiu -
x dividita per faktoro -
apude spegulas ĝis tie kie ni diru y dividita per faktoro elkompreni ke
la malnovaj y-a vico korespondas al la y-a vico en tiu nova dosiero.
>> Nun ni verkos ĉiuj tiuj rastrumeroj el la malnova vico
en nian novan vicon.
Iam ni jam faris tion, ni bezonas nur metu la Plenigado ĉe la fino de nia vico
kaj ni buklo dorso kaj daŭrigi por ĉiuj el la vicoj de nia nova dosiero.
Je la fino, ni devas fermi niajn malnovajn dosieron, fermu nian novan dosieron, kaj reveno
nulo ĉar ĉio iris bone.
>> Mia nomo estas Rob kaj tio estis Recess.
>> [MUZIKO Ludanta]