[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]