>> [MUZIKO Ludanta]
>> ROB Bowden: Saluton, mi estas Rob, ni try this on por grandeco.
Do, ni estas denove tuj komenci kun esence kopio de la copy.c, kaj
fari kelkajn ŝanĝojn.
Notu ni tuj vidas ŝanĝon, kie anstataŭ kontrolanta vidi se
argc ne egalas 3, ni volas kontroli se argc ne egala 4, ekde
Nun ni ne nur preni en infile kaj outfile, sed ni ankaŭ prenante en
n, kiu estas la sumo kiun ni estas grimpante la originalan bildon per.
Iam ni estas certa pri tio, ni povas nur konverti n al entjero uzante atoi.
>> Do, nun ni iras por krei iun alias, simple vokas argv 2 infile, kaj
argv 3 outfile, ĉar argv 2 kaj argv 3 ne estas tre helpema nomoj.
Nun ni volas kontroli por certiĝi n estas ene de la limoj ni atendas, do la
spec specifas ke se ĝi estas malpli ol aŭ egala al nulo, aŭ pli granda ol 100,
tiam tio estas malvalida ŝanĝi grandecon faktoro, kaj ni devus averti la uzanton de tiu.
>> Iam ni estas trans ĉio, kion ni povas fine malfermi niajn infile, kaj ni bezonas
al eraro kontroli por certiĝi ke la malfermo ne maltrafis ial.
Ni ankaŭ bezonas malfermi niajn outfile, kaj denove eraro kontroli por certiĝi ke
ne maltrafis ial.
Sed estu certa ke, se la malfermon de la outfile maltrafis ke ni devas fermi
la infile, kiu estis jam malfermiĝis.
>> Do, supozante, ke ili ne mankos, tiam we're - same kiel en copy.c--
legos en la kaplinio el la infile.
Ni tuj certigu ĝi estas valida bitmap, sed nun ni tuj faros iun
aferojn iom malsame.
Do unue, ni tuj volas memori la originala larĝeco kaj alteco
de la infile, ĉar ni tuj ŝanĝante ĝin por la outfile.
Do nun memori ke por strangaj kialoj bi.biheight, estas negativa, kaj
tial la efektiva alteco, en pozitiva, ni volas preni la absoluta valoro.
>> Nun, la Plenigado tuj estos la sama kalkulo, kiel estis en copy.c,
uzante la malnovajn larĝo, kaj nun ni estas fakte tuj ŝanĝos
Kio estas en nia kaplinion.
Do ni tuj multobligos nian larĝa por n, ekde ni grimpante la larĝa por
n, multipliki la alto per n, ekde ni estas grimpi per n, kaj nun ni havas
la ŝtonon por nova Plenigado bazitaj sur la nova larĝa.
>> Do nun ni devas ŝanĝi iujn aliaj kampoj en nia kaplinion.
Bi.biSizeImage estas supozataj esti la grandeco de ĉiuj bitokoj en la pixels
kaj Plenigado de la bildo.
Kaj tial la grandecon de unu sola vico de niaj bildo estas grandeco de RVB triobla, la grandeco
de sola bildero, tempoj la nombro de rastrumeroj en vico, krom la Plenigado ĉe
la fino de la vico.
Kaj poste ni iras al multipliki, ke per absoluta valoro de nia alteco akiri
La tuta nombro de bitokoj en la bildo datumojn.
bf.bfSize estas nur la tuta kvanto de bajtoj en nia bildo datumoj, tiel
bi.biSizeImage, plus la grandeco de niaj titolaj.
Do, aldonante al la grandeco de bitmap dosieron kaplinio, kaj grandeco de bitmap info
kaplinio, OK.
Do jen ĉio ni bezonas ŝanĝi en niaj titolaj.
Nun ni devos skribi la bitmap dosieron kaplinio al nia outfile, kaj nia bitmap info
header al nia outfile, kaj nun Ni pretas komenci iri
super la reala rastrumeroj.
>> Do ni volas persisti super la infile la scan linioj.
Do ni volas persisti super oldheight.
Jen kial ni bezonas memori la originalaj alteco, antaŭ ol ni anstatauxigi
kaj grimpis gxin per n.
Nun ni iras legi sola vico de la infile enen
bufro de grandeco oldwidth.
Do jen, ni freading grandeco de RVB triobla, unu bildero, kaj malnovaj larĝeco de
ili el la infile en nian bufro.
Kaj tio fariĝos tuta remi en ĉi tiu tabelo.
Do nun, ni volas persisti n fojojn presi ĉi vico al nia outfile n fojojn.
Kaj tiel tio, kio estas tiu buklo estas faranta.
Ĉi ena buklo estas ripetanta tra la remi mem, sur la tabelo, impreso
ĉiu rastrumero en la tabelo n fojojn.
Do la nula ero estas presita n fojoj, la unua elemento estas estante
presita n fojojn.
Kaj tio estas speco de kiel ni tuj horizontale grimpi en la outfile, kaj
ĉi ciklo, ĉar ni looping n tempoj, estas kiel ni tuj
vertikale skalo.
>> Malsupren tien, ni vidas ke ni bezonas aldoni la Plenigado ĉe la fino de ĉiu vico.
Tial ĉi estas interne la buklo tio estas la impreso el la n vicoj de nur
ĉi tiu vico de la infile.
Tiam cxi tie, mi tuj salti super la Plenigado en la infile, ĉar unufoje
ni faris kun unu vico de la infile, ni ne zorgas pri
kion la Plenigado estis.
Ni nur volis atingi la duan vicon.
Kaj tiam ni buklo dorso kaj faru cxion ĉi denove por la dua vico.
>> Finfine, iam ni faris kun cxiuj, kiuj, ni povas fermi la infile, fermo
la outfile kaj reveno 0 ĉar ni faris.
>> Mia nomo estas Rob, kaj tio estis por ŝanĝi grandecon.
>> [MUZIKO Ludanta]