1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [MUZIKO Ludanta] 3 00:00:13,350 --> 00:00:14,080 >> ROB Bowden: Hi. 4 00:00:14,080 --> 00:00:17,550 Mi Rob, kaj ni esperas, ke tiu solvo helpas meti vin 5 00:00:17,550 --> 00:00:19,600 sur la vojo al resaniĝo. 6 00:00:19,600 --> 00:00:22,700 Do ni komencu. 7 00:00:22,700 --> 00:00:25,660 >> Ni vidas, ke tuj ni estas nur por certigi ke ni estas 8 00:00:25,660 --> 00:00:27,170 uzante Rekuperi korekte. 9 00:00:27,170 --> 00:00:31,490 Do la uzado devas esti nur io kiel skalara oblikvo resanigxos. 10 00:00:31,490 --> 00:00:35,500 >> Nun ni iras malfermi la atendata karto dot kruda dosiero. 11 00:00:35,500 --> 00:00:39,740 Oni vidas ĉi tie ke ni uzas la konstanta krudan substreko dosiernomo, 12 00:00:39,740 --> 00:00:44,200 kiuj ĝis ĉi tie ni havas hash difinita kiel karto dot krudan. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Tial oni devas certigi, ke tiu sukcese malfermis ĉar se ĝi 15 00:00:48,210 --> 00:00:51,150 ne, tiam ni devus averti la uzanton. 16 00:00:51,150 --> 00:00:56,770 Sed supozante, ke ĝi faris, ke ni estas nun tuj deklari buffer de grandeco JPEG 17 00:00:56,770 --> 00:00:58,170 dosiernomo longa. 18 00:00:58,170 --> 00:01:02,060 Do tiu tuj estos la buffer ke Ni tuj sprintf en. 19 00:01:02,060 --> 00:01:04,360 >> Do kio estas JPEG dosiero nomo longo? 20 00:01:04,360 --> 00:01:08,490 Ĝis ĉi tie, oni vidas ke ĝi estas hash difinita kiel ok. 21 00:01:08,490 --> 00:01:10,670 Do kial ok? 22 00:01:10,670 --> 00:01:15,150 Nu donita dosiero estos nomata iu kiel nulo nulo nulo. 23 00:01:15,150 --> 00:01:19,460 JPG kaj tiam ni bezonas backslash nulo. 24 00:01:19,460 --> 00:01:22,720 Do ni bezonas buffer kiuj neniom stoki ok literojn. 25 00:01:22,720 --> 00:01:25,190 Nun ni tuj havos nombrilo tio tuj sekvigi la 26 00:01:25,190 --> 00:01:27,780 numeron JPEG-oj ni trovis. 27 00:01:27,780 --> 00:01:31,590 >> Kaj fine, ni tuj havos JPEG-dosiero kiu estas komence nula 28 00:01:31,590 --> 00:01:35,920 kiu iras al la aktuale malfermita dosiero kiun ni skribas al. 29 00:01:35,920 --> 00:01:37,540 Nun ni tuj havos plia bufro. 30 00:01:37,540 --> 00:01:41,350 Ĉi tio ne estas la sama kiel nia sprintf buffer kie ĉi bufro estas 31 00:01:41,350 --> 00:01:45,020 kiuj ni legas en la datumoj el la karto dot krudan. 32 00:01:45,020 --> 00:01:48,900 >> Do la bufro iras esti de sensigna signoj, kiujn vi povas 33 00:01:48,900 --> 00:01:53,560 esence nur traktos ni bajtoj, kaj ĝi estas tuj estos de grandeco bloko grandeco 34 00:01:53,560 --> 00:01:57,950 kie, kiel ni diras al vi, bloko grandeco estas 512. 35 00:01:57,950 --> 00:02:03,070 Do JPEG-oj vi povas trakti ĉiun kiel blokoj de 512 bajtoj. 36 00:02:03,070 --> 00:02:05,890 >> Nun ni iras al buklo super la tuta dosiero. 37 00:02:05,890 --> 00:02:12,980 Ni iras al f legis en nian buffer sola bajto bloko grandeco tempoj de 38 00:02:12,980 --> 00:02:14,710 la karto dot kruda dosiero. 39 00:02:14,710 --> 00:02:16,630 Nun kion signifas f legu reveni? 40 00:02:16,630 --> 00:02:20,050 Ĝi redonas la nombron da eroj ke ŝi sukcese legi. 41 00:02:20,050 --> 00:02:27,310 Do, se ĝi sukcesis legi 512 bitokoj, tiam ni volas vidi, ĉu ĉi tio estis 42 00:02:27,310 --> 00:02:29,700 JPEG aŭ skribi ĝin al JPEG-dosiero. 43 00:02:29,700 --> 00:02:34,450 Kaj se tio ne revenos 512 bitokoj, do ĉu la dosiero finiĝis en 44 00:02:34,450 --> 00:02:37,870 tiaokaze ni rompos el la y buklo, aŭ tie estas ia eraro 45 00:02:37,870 --> 00:02:40,300 tiaokaze ni ankaŭ rompi la y buklo, sed ni deziras raporti 46 00:02:40,300 --> 00:02:41,990 ke io misfunkciis. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Do alprenanta ke ni sukcese legi en 512 bitokoj, ni volas unue ĉeko 49 00:02:47,630 --> 00:02:53,070 fari ke tiuj bitokoj, ke ni ĵus legis en komenci JPEG. 50 00:02:53,070 --> 00:02:56,430 Do se estas JPEG kaplinio de nia bufro. 51 00:02:56,430 --> 00:02:58,460 Nun kio estas JPEG kaplinio faras? 52 00:02:58,460 --> 00:03:00,120 Ni rigardu. 53 00:03:00,120 --> 00:03:05,270 >> Ĝis ĉi tie, oni vidas ke tiu funkcio estas reveninte taŭro, kaj tiu taŭro - 54 00:03:05,270 --> 00:03:08,820 bone ĉi tie, ni kontrolas, se kaplinio nulo egalas tiu konstanta kaj 55 00:03:08,820 --> 00:03:11,880 kaplinio unu egalas tiu konstanta kaj kaplinio du egalas ĉi konstanto, 56 00:03:11,880 --> 00:03:15,640 kaplinio tri egalas tiun aŭ ĉi konstanto kie ĉiuj ĉi tiuj konstantoj estas 57 00:03:15,640 --> 00:03:20,340 nur hash difinita ĝuste ĉi tie kaj estas ekzakte kion ni rakontis al vi en la spec 58 00:03:20,340 --> 00:03:22,700 ke JPEG komencas kun. 59 00:03:22,700 --> 00:03:27,300 Kaj do ĉi tiu funkcio estas nur tuj return true, se ĉi buffer reprezentas 60 00:03:27,300 --> 00:03:31,750 la komencon de nova JPEG kaj falsaj alie. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Do se tiu faras reprezenti novajn JPEG, do ni unue volas kontroli por vidi se 63 00:03:38,490 --> 00:03:42,030 JPEG-dosiero ne estas egala al nula, tiaokaze ni fermas ĝin. 64 00:03:42,030 --> 00:03:44,940 Kaj do kial ni devas kontroli por vidi, ĉu ĝi ne estas nula? 65 00:03:44,940 --> 00:03:48,980 Nu la unua JPEG, ke ni trovi ni ne jam havas 66 00:03:48,980 --> 00:03:50,440 malfermita JPEG-dosiero. 67 00:03:50,440 --> 00:03:55,580 Kaj do, se ni provos fermi ke, tiam ni ne faras ion tute pravas. 68 00:03:55,580 --> 00:03:59,090 >> Sed ĉiu posta JPEG ke ni malfermos, ni volas fermi 69 00:03:59,090 --> 00:04:00,710 la antaŭan dosieron. 70 00:04:00,710 --> 00:04:04,630 Do nun ni tuj uzi sprintf kiel ni antauxe diris, kie ni uzas la 71 00:04:04,630 --> 00:04:06,280 buffer JPEG dosiero nomon. 72 00:04:06,280 --> 00:04:09,870 Kaj ni tuj uzi JPEG dosieron nomumi formato kiel nia formato. 73 00:04:09,870 --> 00:04:12,030 Kaj kio estas tio? 74 00:04:12,030 --> 00:04:18,450 Ĝis ĉi tie, oni vidas ke ĝi estas procento nulo 3D.JPEG kie la nulo tri ĝuste 75 00:04:18,450 --> 00:04:22,089 diras, ke ni uzos tri entjeroj por ĉi vatitaj per nuloj. 76 00:04:22,089 --> 00:04:27,470 Do jen kiel ni akiros nulo nulo one.JPEG kaj nulo 10.JPEG kaj tiel plu. 77 00:04:27,470 --> 00:04:29,060 >> Ni tuj uzi sprintf. 78 00:04:29,060 --> 00:04:33,760 Kaj la entjeraj kiuj ni enmeto en la cxeno estas Numb JPEG-oj 79 00:04:33,760 --> 00:04:36,380 reakiris, kiuj estas origine nulo. 80 00:04:36,380 --> 00:04:39,950 Do la unua dosiero malfermiĝis tuj esti nulo nulo nulo dot JPEG. 81 00:04:39,950 --> 00:04:43,330 Kaj tiam ni pliigante tiel la sekvanta dosieron ni malfermu estos nulo nulo 82 00:04:43,330 --> 00:04:46,830 unu punkto JPEG kaj ni pliigo ĝi denove tiel ĝi estos nulo nulo du punktoj 83 00:04:46,830 --> 00:04:49,100 JPEG kaj tiel plu. 84 00:04:49,100 --> 00:04:49,850 >> Ĉiuj pravas. 85 00:04:49,850 --> 00:04:53,210 Do nun interne de JPEG dosieron nomo, ni havas la nomon de la 86 00:04:53,210 --> 00:04:54,990 dosieron kiun ni deziras. 87 00:04:54,990 --> 00:04:58,640 Ni povas f malfermu tiun dosieron por skribi. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 Kaj denove, ni bezonas kontroli por fari certas, ke la dosiero sukcese 90 00:05:02,820 --> 00:05:08,460 malfermis ekde se gxi ne faris tion, tiam tie estis iu eraro. 91 00:05:08,460 --> 00:05:13,100 >> Do nun ni jam alvenintaj preter la Ĉu tio estas JPEG parto. 92 00:05:13,100 --> 00:05:16,390 Kaj tie, ni vidas ni iras skribi al la JPEG. 93 00:05:16,390 --> 00:05:20,980 Sed ni unue havas tiun ĉekon kion diras se JPEG-dosiero ne egalas nula. 94 00:05:20,980 --> 00:05:22,490 Kial ni bezonas tion? 95 00:05:22,490 --> 00:05:28,020 Nu JPEG-dosiero egalas nula kiam ni aktuale havas malferman JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Kio se karto dot krudan komenciĝas kun fasko da bajtoj, ke 97 00:05:31,870 --> 00:05:33,510 ne reprezentas JPEG? 98 00:05:33,510 --> 00:05:36,240 Tiam ni tuj volas salti super tiuj bitokoj. 99 00:05:36,240 --> 00:05:39,600 Se ni ne havas tiun ĉekon, tiam ni estas tuj skribos al sen malfermi 100 00:05:39,600 --> 00:05:45,540 fajli la unuaj 512 bitokoj de la karto, kio ne estas bona. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Do supozante ni havas malfermitan dosieron, tiam Ni tuj skribos al tiu dosiero la 103 00:05:51,330 --> 00:05:53,290 512 bitokoj kiuj ni havi en niaj bufro. 104 00:05:53,290 --> 00:05:57,390 Kaj ni refoje kontrolanta fari certas, ke la 512 bitokoj sukcese 105 00:05:57,390 --> 00:06:01,140 estis skribita ĉar se ili ne estis sukcese skribite poste ion 106 00:06:01,140 --> 00:06:02,080 iris malbone. 107 00:06:02,080 --> 00:06:06,540 Ni devos fermi niajn dosierojn, presi, ke io iris malbone, kaj reveno. 108 00:06:06,540 --> 00:06:10,940 Supozante ĉio iras korekte, tiam Ni devos teni looping fermante la 109 00:06:10,940 --> 00:06:15,060 malnovan dosieron, malfermi la novan dosieron, skribado datumojn al la nova dosiero, kaj tiel 110 00:06:15,060 --> 00:06:20,990 plu ĝis fine, ĉi f legi Revenas nulo kion signifas 111 00:06:20,990 --> 00:06:23,280 ke la dosiero estas farita. 112 00:06:23,280 --> 00:06:28,490 >> Do nun, ke la karto legado estas finita, ni vidas, ke ni iras al f fermi la 113 00:06:28,490 --> 00:06:33,250 lastan dosieron, ke ni havis malferman, sed ni kontrolanta se JPEG dosieron 114 00:06:33,250 --> 00:06:34,900 ne egala nula. 115 00:06:34,900 --> 00:06:39,520 Nu la f proksima havas sencon ĉar kiel ni malfermi dosierojn, ni fermante 116 00:06:39,520 --> 00:06:43,870 la antaŭan dosieron, sed la lasta dosiero ni malfermis neniam gets closed. 117 00:06:43,870 --> 00:06:45,580 Do, tio estas kion tiu faras. 118 00:06:45,580 --> 00:06:47,720 >> Sed kial ni bezonas por kontroli nula? 119 00:06:47,720 --> 00:06:53,130 Nu kion se karto dot krudan ne havi solan JPEG interne de gxi? 120 00:06:53,130 --> 00:06:56,640 En tiu kazo, ni havus neniam malfermis dosieron. 121 00:06:56,640 --> 00:07:00,230 Kaj se ni neniam malfermi dosieron, ni devus Ne provu fermi tiun dosieron. 122 00:07:00,230 --> 00:07:03,000 Do jen, kio estas tiu ĉeko estas faranta. 123 00:07:03,000 --> 00:07:07,880 >> Nun ĉi tie, kiel mi diris antaŭe, ni povis jam ekfloris ke y buklo ĉu se 124 00:07:07,880 --> 00:07:13,520 la karto finiĝis aŭ se ekzistas iu eraro legado de la karto. 125 00:07:13,520 --> 00:07:16,680 Do tiu estas kontrolanta vidi ĉu estis eraro legado de la karto, en 126 00:07:16,680 --> 00:07:19,400 tiaokaze, ni diros, ke tie Estis eraro legado. 127 00:07:19,400 --> 00:07:22,130 Ni ne volas ke la uzanto pensi ĉiu iris sukcese. 128 00:07:22,130 --> 00:07:24,750 Kaj ni revenos unu por eraro. 129 00:07:24,750 --> 00:07:29,580 >> Fine, ni f fermi niajn dosiero kruda, nia karto dot krudaj, por indiki ke 130 00:07:29,580 --> 00:07:34,070 ĉio iris bone kaj reveno nulo kaj tio estas ĝi. 131 00:07:34,070 --> 00:07:36,130 >> Mia nomo estas Rob kaj tio estis sanigita. 132 00:07:36,130 --> 00:07:42,102 >> [MUZIKO Ludanta]