1 00:00:00,000 --> 00:00:12,240 >> [MUZIKO Ludanta] 2 00:00:12,240 --> 00:00:15,870 >> ROB Bowden: Saluton, mi estas Rob, ni try this on por grandeco. 3 00:00:15,870 --> 00:00:21,100 Do, ni estas denove tuj komenci kun esence kopio de la copy.c, kaj 4 00:00:21,100 --> 00:00:22,860 fari kelkajn ŝanĝojn. 5 00:00:22,860 --> 00:00:26,280 Notu ni tuj vidas ŝanĝon, kie anstataŭ kontrolanta vidi se 6 00:00:26,280 --> 00:00:30,440 argc ne egalas 3, ni volas kontroli se argc ne egala 4, ekde 7 00:00:30,440 --> 00:00:34,350 Nun ni ne nur preni en infile kaj outfile, sed ni ankaŭ prenante en 8 00:00:34,350 --> 00:00:38,980 n, kiu estas la sumo kiun ni estas grimpante la originalan bildon per. 9 00:00:38,980 --> 00:00:44,340 Iam ni estas certa pri tio, ni povas nur konverti n al entjero uzante atoi. 10 00:00:44,340 --> 00:00:48,760 >> Do, nun ni iras por krei iun alias, simple vokas argv 2 infile, kaj 11 00:00:48,760 --> 00:00:54,240 argv 3 outfile, ĉar argv 2 kaj argv 3 ne estas tre helpema nomoj. 12 00:00:54,240 --> 00:00:58,510 Nun ni volas kontroli por certiĝi n estas ene de la limoj ni atendas, do la 13 00:00:58,510 --> 00:01:02,910 spec specifas ke se ĝi estas malpli ol aŭ egala al nulo, aŭ pli granda ol 100, 14 00:01:02,910 --> 00:01:08,580 tiam tio estas malvalida ŝanĝi grandecon faktoro, kaj ni devus averti la uzanton de tiu. 15 00:01:08,580 --> 00:01:13,090 >> Iam ni estas trans ĉio, kion ni povas fine malfermi niajn infile, kaj ni bezonas 16 00:01:13,090 --> 00:01:16,270 al eraro kontroli por certiĝi ke la malfermo ne maltrafis ial. 17 00:01:16,270 --> 00:01:19,860 Ni ankaŭ bezonas malfermi niajn outfile, kaj denove eraro kontroli por certiĝi ke 18 00:01:19,860 --> 00:01:21,250 ne maltrafis ial. 19 00:01:21,250 --> 00:01:26,270 Sed estu certa ke, se la malfermon de la outfile maltrafis ke ni devas fermi 20 00:01:26,270 --> 00:01:29,040 la infile, kiu estis jam malfermiĝis. 21 00:01:29,040 --> 00:01:33,690 >> Do, supozante, ke ili ne mankos, tiam we're - same kiel en copy.c-- 22 00:01:33,690 --> 00:01:36,140 legos en la kaplinio el la infile. 23 00:01:36,140 --> 00:01:40,130 Ni tuj certigu ĝi estas valida bitmap, sed nun ni tuj faros iun 24 00:01:40,130 --> 00:01:41,620 aferojn iom malsame. 25 00:01:41,620 --> 00:01:44,870 Do unue, ni tuj volas memori la originala larĝeco kaj alteco 26 00:01:44,870 --> 00:01:48,290 de la infile, ĉar ni tuj ŝanĝante ĝin por la outfile. 27 00:01:48,290 --> 00:01:53,890 Do nun memori ke por strangaj kialoj bi.biheight, estas negativa, kaj 28 00:01:53,890 --> 00:01:58,670 tial la efektiva alteco, en pozitiva, ni volas preni la absoluta valoro. 29 00:01:58,670 --> 00:02:02,580 >> Nun, la Plenigado tuj estos la sama kalkulo, kiel estis en copy.c, 30 00:02:02,580 --> 00:02:06,060 uzante la malnovajn larĝo, kaj nun ni estas fakte tuj ŝanĝos 31 00:02:06,060 --> 00:02:07,320 Kio estas en nia kaplinion. 32 00:02:07,320 --> 00:02:11,200 Do ni tuj multobligos nian larĝa por n, ekde ni grimpante la larĝa por 33 00:02:11,200 --> 00:02:15,100 n, multipliki la alto per n, ekde ni estas grimpi per n, kaj nun ni havas 34 00:02:15,100 --> 00:02:19,250 la ŝtonon por nova Plenigado bazitaj sur la nova larĝa. 35 00:02:19,250 --> 00:02:21,840 >> Do nun ni devas ŝanĝi iujn aliaj kampoj en nia kaplinion. 36 00:02:21,840 --> 00:02:26,890 Bi.biSizeImage estas supozataj esti la grandeco de ĉiuj bitokoj en la pixels 37 00:02:26,890 --> 00:02:28,520 kaj Plenigado de la bildo. 38 00:02:28,520 --> 00:02:34,190 Kaj tial la grandecon de unu sola vico de niaj bildo estas grandeco de RVB triobla, la grandeco 39 00:02:34,190 --> 00:02:39,430 de sola bildero, tempoj la nombro de rastrumeroj en vico, krom la Plenigado ĉe 40 00:02:39,430 --> 00:02:40,910 la fino de la vico. 41 00:02:40,910 --> 00:02:45,200 Kaj poste ni iras al multipliki, ke per absoluta valoro de nia alteco akiri 42 00:02:45,200 --> 00:02:48,350 La tuta nombro de bitokoj en la bildo datumojn. 43 00:02:48,350 --> 00:02:53,050 bf.bfSize estas nur la tuta kvanto de bajtoj en nia bildo datumoj, tiel 44 00:02:53,050 --> 00:02:56,530 bi.biSizeImage, plus la grandeco de niaj titolaj. 45 00:02:56,530 --> 00:02:59,850 Do, aldonante al la grandeco de bitmap dosieron kaplinio, kaj grandeco de bitmap info 46 00:02:59,850 --> 00:03:00,800 kaplinio, OK. 47 00:03:00,800 --> 00:03:03,170 Do jen ĉio ni bezonas ŝanĝi en niaj titolaj. 48 00:03:03,170 --> 00:03:07,020 Nun ni devos skribi la bitmap dosieron kaplinio al nia outfile, kaj nia bitmap info 49 00:03:07,020 --> 00:03:09,880 header al nia outfile, kaj nun Ni pretas komenci iri 50 00:03:09,880 --> 00:03:11,990 super la reala rastrumeroj. 51 00:03:11,990 --> 00:03:15,720 >> Do ni volas persisti super la infile la scan linioj. 52 00:03:15,720 --> 00:03:17,730 Do ni volas persisti super oldheight. 53 00:03:17,730 --> 00:03:20,830 Jen kial ni bezonas memori la originalaj alteco, antaŭ ol ni anstatauxigi 54 00:03:20,830 --> 00:03:23,040 kaj grimpis gxin per n. 55 00:03:23,040 --> 00:03:27,810 Nun ni iras legi sola vico de la infile enen 56 00:03:27,810 --> 00:03:30,630 bufro de grandeco oldwidth. 57 00:03:30,630 --> 00:03:36,190 Do jen, ni freading grandeco de RVB triobla, unu bildero, kaj malnovaj larĝeco de 58 00:03:36,190 --> 00:03:39,760 ili el la infile en nian bufro. 59 00:03:39,760 --> 00:03:43,480 Kaj tio fariĝos tuta remi en ĉi tiu tabelo. 60 00:03:43,480 --> 00:03:50,390 Do nun, ni volas persisti n fojojn presi ĉi vico al nia outfile n fojojn. 61 00:03:50,390 --> 00:03:52,510 Kaj tiel tio, kio estas tiu buklo estas faranta. 62 00:03:52,510 --> 00:03:57,910 Ĉi ena buklo estas ripetanta tra la remi mem, sur la tabelo, impreso 63 00:03:57,910 --> 00:04:00,710 ĉiu rastrumero en la tabelo n fojojn. 64 00:04:00,710 --> 00:04:04,510 Do la nula ero estas presita n fojoj, la unua elemento estas estante 65 00:04:04,510 --> 00:04:05,660 presita n fojojn. 66 00:04:05,660 --> 00:04:10,820 Kaj tio estas speco de kiel ni tuj horizontale grimpi en la outfile, kaj 67 00:04:10,820 --> 00:04:13,390 ĉi ciklo, ĉar ni looping n tempoj, estas kiel ni tuj 68 00:04:13,390 --> 00:04:15,580 vertikale skalo. 69 00:04:15,580 --> 00:04:19,850 >> Malsupren tien, ni vidas ke ni bezonas aldoni la Plenigado ĉe la fino de ĉiu vico. 70 00:04:19,850 --> 00:04:25,050 Tial ĉi estas interne la buklo tio estas la impreso el la n vicoj de nur 71 00:04:25,050 --> 00:04:28,400 ĉi tiu vico de la infile. 72 00:04:28,400 --> 00:04:32,150 Tiam cxi tie, mi tuj salti super la Plenigado en la infile, ĉar unufoje 73 00:04:32,150 --> 00:04:34,560 ni faris kun unu vico de la infile, ni ne zorgas pri 74 00:04:34,560 --> 00:04:35,290 kion la Plenigado estis. 75 00:04:35,290 --> 00:04:37,110 Ni nur volis atingi la duan vicon. 76 00:04:37,110 --> 00:04:40,870 Kaj tiam ni buklo dorso kaj faru cxion ĉi denove por la dua vico. 77 00:04:40,870 --> 00:04:44,406 >> Finfine, iam ni faris kun cxiuj, kiuj, ni povas fermi la infile, fermo 78 00:04:44,406 --> 00:04:47,430 la outfile kaj reveno 0 ĉar ni faris. 79 00:04:47,430 --> 00:04:50,330 >> Mia nomo estas Rob, kaj tio estis por ŝanĝi grandecon. 80 00:04:50,330 --> 00:04:54,934 >> [MUZIKO Ludanta]