1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [MUZIKO Ludanta] 3 00:00:12,470 --> 00:00:13,210 >> ROB Bowden: Hi. 4 00:00:13,210 --> 00:00:16,870 Mi Rob kaj ni grandeco tiun problemon. 5 00:00:16,870 --> 00:00:20,990 Do ni tuj komencu per copy.c kiel ŝablonon, sed ni tuj estos 6 00:00:20,990 --> 00:00:23,340 fari tre malmultaj ŝanĝoj. 7 00:00:23,340 --> 00:00:27,570 >> Nun ni vidas ni tuj faras ŝanĝi kie ni ne plu kontrolanta 8 00:00:27,570 --> 00:00:31,560 por nia rxc ne egalas 3, sed nun ni kontrolanta rc ne valoregalas 4. 9 00:00:31,560 --> 00:00:34,670 Ĉar ni ankaŭ volas inkludi, en Krom la dosieron kaj eliri dosierojn 10 00:00:34,670 --> 00:00:39,550 argumentoj, f kiu tuj estos ĉi faktoro, per kiu ni grimpi. 11 00:00:39,550 --> 00:00:45,430 >> Do iam ni estas certa pri tio, ni volas uzi s scan f al konverti la kordo 12 00:00:45,430 --> 00:00:49,030 argv1 al float. 13 00:00:49,030 --> 00:00:51,330 Kaj ni tuj stoki ke en faktoro. 14 00:00:51,330 --> 00:00:55,180 Tiu aldona signo estas certigi ke ni fakte ne eniri 15 00:00:55,180 --> 00:00:59,200 iu kiel 1,4 ABC ĉe la komandlinio. 16 00:00:59,200 --> 00:01:02,960 >> Nun ni iras por krei iun alias ekde RV2 kaj RV3 estas ne 17 00:01:02,960 --> 00:01:04,310 tre helpema nomoj. 18 00:01:04,310 --> 00:01:07,660 Ni, kontraŭe, irante voki ilin en dosiero kaj el dosiero. 19 00:01:07,660 --> 00:01:11,580 Nun ni iras por certigi ke nia faktoro estis efektive validas. 20 00:01:11,580 --> 00:01:16,330 Do se faktoro estas malpli ol aŭ egala al nulo aŭ pli granda ol 100, tiam kiel po 21 00:01:16,330 --> 00:01:19,660 la specifon, ni devus malakcepti ke faktoro. 22 00:01:19,660 --> 00:01:23,890 >> Kiam ni certas ke ĝi estas bona, nun ni povas malfermi la n-dosiero, kaj ni devas fari 23 00:01:23,890 --> 00:01:25,950 certas, ke ĝi estis sukcese malfermita. 24 00:01:25,950 --> 00:01:28,630 Se ne, kiu revenos nula. 25 00:01:28,630 --> 00:01:30,390 Ni tuj malfermu el dosiero. 26 00:01:30,390 --> 00:01:33,420 Kaj denove, ni volas kontroli por fari certe ĝi estas sukcese malfermita. 27 00:01:33,420 --> 00:01:37,270 Kaj se ĝi ne sukcese malfermos, tiam ni ankaŭ bezonos esti certa por fermi 28 00:01:37,270 --> 00:01:40,870 la n dosiero kiu origine sukcese malfermita, alie ni havas 29 00:01:40,870 --> 00:01:42,600 memoro liko. 30 00:01:42,600 --> 00:01:46,350 >> Do nun ni legos en la bitbildo dosiero kaplinio kaj bitmap info 31 00:01:46,350 --> 00:01:48,890 header de la n-dosiero. 32 00:01:48,890 --> 00:01:52,360 Ni iras por certigi, ke la n dosiero estis valida bitmap. 33 00:01:52,360 --> 00:01:52,640 OK. 34 00:01:52,640 --> 00:01:55,100 >> Do nun ni tuj komencu farante kelkajn ŝanĝoj. 35 00:01:55,100 --> 00:01:58,840 Do ĉar ni tuj estos ŝanĝanta aĵoj, ni unue volas memori la 36 00:01:58,840 --> 00:02:01,510 malnovan larĝeco de la n-dosiero. 37 00:02:01,510 --> 00:02:05,160 Ni volas memori la malnovan Plenigado de la n dosieron per la sama kalkulo 38 00:02:05,160 --> 00:02:06,990 el copy.c. 39 00:02:06,990 --> 00:02:09,840 >> Kaj nun ni tuj ŝanĝos la bitmap info kaplinion. 40 00:02:09,840 --> 00:02:13,630 Kaj tial ni multiplikante ambaŭ la larĝeco kaj la alto de faktoro ekde 41 00:02:13,630 --> 00:02:15,750 tio estas, kion ni grimpi per. 42 00:02:15,750 --> 00:02:18,420 Ni tuj determinas la nova Plenigado de la dosiero de 43 00:02:18,420 --> 00:02:21,140 uzante la novan larĝa. 44 00:02:21,140 --> 00:02:27,330 Kaj ni tuj determinas la novan grandeco de la bildo per la nombro de 45 00:02:27,330 --> 00:02:31,610 bajtoj en unu vico, kiu kondukas al esti la nombro de rastrumeroj en tiu vico 46 00:02:31,610 --> 00:02:35,960 fojoj la grandeco de pixel plus la nombro da bajtoj el Plenigado fine 47 00:02:35,960 --> 00:02:40,310 de tiu vico, kaj multigante ĉiuj kiuj per la nombro de vicoj, ke ni havas. 48 00:02:40,310 --> 00:02:43,800 Do tio estas la nombro de bitokoj ni havos en nia bildo datumojn. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize nun tuj estos la nombro de bajtoj en nia bildo beta plus 50 00:02:48,190 --> 00:02:49,350 la grandeco de nia titolaj. 51 00:02:49,350 --> 00:02:53,910 Do krom grandeco de bitmap dosieron kaplinio kaj grandeco de bitmap info kaplinion. 52 00:02:53,910 --> 00:02:54,510 OK. 53 00:02:54,510 --> 00:02:56,440 Do jen ĝi pro nia titolaj. 54 00:02:56,440 --> 00:02:59,030 Ni povas skribi la dosieron kapon kaj info kaplinion al niaj ekster 55 00:02:59,030 --> 00:03:01,590 fajliloj, kaj ni estas bonaj. 56 00:03:01,590 --> 00:03:03,800 >> Nun estas tempo por komenci efektive verki la rastrumero 57 00:03:03,800 --> 00:03:05,120 datumojn al la ekster-dosiero. 58 00:03:05,120 --> 00:03:10,460 Ni tuj deklari buffer de grandeco malnovan larĝa RVB triopoj, kaj ni estas 59 00:03:10,460 --> 00:03:13,790 tuj deklari variablon nomitan vico Numb, kio estas ni tuj 60 00:03:13,790 --> 00:03:15,640 komence starigis egala al negativa 1. 61 00:03:15,640 --> 00:03:19,090 Ni vidos, ke ni tuj povas uzi ke por teni spuro de kio 62 00:03:19,090 --> 00:03:22,640 vico ni aktuale havas ŝarĝita en ĉi tiun bufro. 63 00:03:22,640 --> 00:03:23,290 OK. 64 00:03:23,290 --> 00:03:28,750 >> Do nun kontraŭe al la norma eldono, anstataŭ ripetanta super ĉe la en 65 00:03:28,750 --> 00:03:32,900 dosiero, ni iras al persisti super ĉiu vico en la ekster-dosieron kaj elkompreni 66 00:03:32,900 --> 00:03:38,130 kiu vico en la dosieron ni volas meti en ĉi tiu vico en la ekster-dosiero. 67 00:03:38,130 --> 00:03:44,930 Do ripetanta super ĉiuj vicoj en la ekster dosieron per la nova alto, ni estas unue 68 00:03:44,930 --> 00:03:48,890 tuj determinas la vico en la malnova dosieron ni tuj uzi, kio ni estas 69 00:03:48,890 --> 00:03:53,560 tuj faros per prenante tiu fluo vico dividita per faktoro. 70 00:03:53,560 --> 00:03:58,000 Por ke tuj donu al ni la vico en la malnova dosiero kiun ni deziras. 71 00:03:58,000 --> 00:04:03,310 >> Do nun, se vico Numb ne egala malnovan y, Ni tuj devos legi la vico 72 00:04:03,310 --> 00:04:05,940 ke ni deziras en nia nuna linio bufro. 73 00:04:05,940 --> 00:04:07,700 Do kiel ni faros tion? 74 00:04:07,700 --> 00:04:11,650 Unue, ni tuj ekkompreni la pozicio kiu komencas kiu vico en la 75 00:04:11,650 --> 00:04:13,100 originala dosiero. 76 00:04:13,100 --> 00:04:18,630 Do tiu pozicio tuj estos pasinteco ĉiuj niaj titolaj kaj 77 00:04:18,630 --> 00:04:21,589 nun pasintaj malnovan y vicoj. 78 00:04:21,589 --> 00:04:23,880 >> Kaj do, kiom da bitokoj Estas en unu vico? 79 00:04:23,880 --> 00:04:28,740 Denove, grandeco de RVB triobla fojojn malnova larĝeco pli malnovaj Plenigado, do tio estas la 80 00:04:28,740 --> 00:04:30,640 nombro da bajtoj en unu vico. 81 00:04:30,640 --> 00:04:33,680 Kaj ni volas salti pasinteco malnovan y vicoj. 82 00:04:33,680 --> 00:04:37,580 Do ni iras al f peti kaj ni estas uzante celas aron por komenci de la 83 00:04:37,580 --> 00:04:39,100 komencante de dosiero. 84 00:04:39,100 --> 00:04:42,740 Ni iras al f celas ĉi pozicio en la dosiero, metante nin en la 85 00:04:42,740 --> 00:04:46,500 komencante de la vico ni volas legi en nia bufro. 86 00:04:46,500 --> 00:04:48,510 >> Ni tuj starigis vicon Numb egala al malnovaj y. 87 00:04:48,510 --> 00:04:53,080 Do nun, se ni buklo dorson kaj ni volas uzi tiun saman vicon en niaj ekster-dosiero, 88 00:04:53,080 --> 00:04:55,970 tiam ni ne legos ĝin denove nenecese. 89 00:04:55,970 --> 00:04:59,310 Do vere, vico Numb estas nur optimumigo. 90 00:04:59,310 --> 00:05:05,500 >> Fine, ni legos en la aktuala vico la malnovan larĝa RVB triopoj 91 00:05:05,500 --> 00:05:08,040 ke ni deziras de la originala dosiero. 92 00:05:08,040 --> 00:05:12,270 Do nun nuna linio montras la rastrumeroj el la originalan dosieron kiu ni volas 93 00:05:12,270 --> 00:05:14,200 skribu en la ekster-dosiero. 94 00:05:14,200 --> 00:05:18,960 Do nun, nur ŝatis supre, anstataŭ ripetanta tra la malnova dosiero, ni bezonas 95 00:05:18,960 --> 00:05:22,560 ĝi persisti super la novajn dosierojn vicoj. 96 00:05:22,560 --> 00:05:27,450 Nu jen, anstataŭ ripetanta super ĉiuj el la malnova rastrumeroj, ke en nuna vico, 97 00:05:27,450 --> 00:05:31,210 ni volas persisti super ĉiuj el la pixeles en nia nova dosiero en tiu 98 00:05:31,210 --> 00:05:32,480 aparta vico. 99 00:05:32,480 --> 00:05:34,140 >> Kial ni volas fari tion? 100 00:05:34,140 --> 00:05:38,960 Ĉar ni vidas ĉi tie ke ni ne estas reale nepre uzi ĉiujn 101 00:05:38,960 --> 00:05:41,020 pixeles en la originala dosiero. 102 00:05:41,020 --> 00:05:46,630 Ĉar se ni ŝrumpanta, eblas ke reale volas preterpasi la rastrumeroj. 103 00:05:46,630 --> 00:05:48,090 Kaj ni vidas, ke tiu - 104 00:05:48,090 --> 00:05:49,690 x dividita per faktoro - 105 00:05:49,690 --> 00:05:55,620 apude spegulas ĝis tie kie ni diru y dividita per faktoro elkompreni ke 106 00:05:55,620 --> 00:06:02,480 la malnovaj y-a vico korespondas al la y-a vico en tiu nova dosiero. 107 00:06:02,480 --> 00:06:05,880 >> Nun ni verkos ĉiuj tiuj rastrumeroj el la malnova vico 108 00:06:05,880 --> 00:06:07,440 en nian novan vicon. 109 00:06:07,440 --> 00:06:10,890 Iam ni jam faris tion, ni bezonas nur metu la Plenigado ĉe la fino de nia vico 110 00:06:10,890 --> 00:06:15,540 kaj ni buklo dorso kaj daŭrigi por ĉiuj el la vicoj de nia nova dosiero. 111 00:06:15,540 --> 00:06:19,390 Je la fino, ni devas fermi niajn malnovajn dosieron, fermu nian novan dosieron, kaj reveno 112 00:06:19,390 --> 00:06:21,540 nulo ĉar ĉio iris bone. 113 00:06:21,540 --> 00:06:24,220 >> Mia nomo estas Rob kaj tio estis Recess. 114 00:06:24,220 --> 00:06:29,184 >> [MUZIKO Ludanta]