1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Music kucheza] 3 00:00:13,350 --> 00:00:14,080 >> Rob BOWDEN: Hi. 4 00:00:14,080 --> 00:00:17,550 Mimi nina Rob, na hebu matumaini kwamba ufumbuzi huu husaidia kuweka wewe 5 00:00:17,550 --> 00:00:19,600 juu ya barabara na kupona. 6 00:00:19,600 --> 00:00:22,700 Basi hebu kuanza. 7 00:00:22,700 --> 00:00:25,660 >> Tunaona kwamba mara moja tuko tu kuhakikisha kwamba sisi ni 8 00:00:25,660 --> 00:00:27,170 kwa kutumia Kuokoa kwa usahihi. 9 00:00:27,170 --> 00:00:31,490 Hivyo matumizi ya lazima tu kuwa kitu kama dot slash kupona. 10 00:00:31,490 --> 00:00:35,500 >> Sasa sisi ni kwenda kufungua inatarajiwa kadi dot file ghafi. 11 00:00:35,500 --> 00:00:39,740 Tunaona hapa kwamba sisi ni kutumia mara kwa mara kusisitiza mbichi jina la faili, 12 00:00:39,740 --> 00:00:44,200 ambayo hadi hapa tuna hash hufafanuliwa kama kadi dot ghafi. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Kwa hiyo, tunahitaji kuhakikisha kwamba mafanikio kufunguliwa kwa sababu kama 15 00:00:48,210 --> 00:00:51,150 hakuwa, basi tunapaswa kuwaonya user. 16 00:00:51,150 --> 00:00:56,770 Lakini kuchukua kwamba ni hivyo, sisi ni sasa kwenda kutangaza buffer ya ukubwa JPEG 17 00:00:56,770 --> 00:00:58,170 faili jina urefu. 18 00:00:58,170 --> 00:01:02,060 Hivyo hii ni kwenda kuwa buffer kwamba tunakwenda sprintf ndani. 19 00:01:02,060 --> 00:01:04,360 >> Kwa hiyo kile ni JPEG faili jina urefu? 20 00:01:04,360 --> 00:01:08,490 Up hapa, tunaona kwamba ni hash hufafanuliwa kama nane. 21 00:01:08,490 --> 00:01:10,670 Hivyo nane nini? 22 00:01:10,670 --> 00:01:15,150 Vizuri file kutokana na itakuwa aitwaye kitu kama sifuri sifuri sifuri. 23 00:01:15,150 --> 00:01:19,460 JPG na kisha tunahitaji backslash sifuri. 24 00:01:19,460 --> 00:01:22,720 Kwa hiyo, tunahitaji buffer ambayo inaweza kuhifadhi wahusika nane. 25 00:01:22,720 --> 00:01:25,190 Sasa tunakwenda na kukabiliana na kwamba kwenda kuweka wimbo wa 26 00:01:25,190 --> 00:01:27,780 JPEGs idadi sisi kupatikana. 27 00:01:27,780 --> 00:01:31,590 >> Na hatimaye, tunakwenda na JPEG faili ambayo ni awali null 28 00:01:31,590 --> 00:01:35,920 ambayo ni kwenda kuwa sasa file wazi kwamba sisi ni kuandika kwa. 29 00:01:35,920 --> 00:01:37,540 Sasa tunakwenda na buffer ya ziada. 30 00:01:37,540 --> 00:01:41,350 Hii si sawa na kama sprintf wetu buffer ambapo buffer hii ni moja 31 00:01:41,350 --> 00:01:45,020 kwamba sisi ni kusoma katika data kutoka kwa kadi dot ghafi. 32 00:01:45,020 --> 00:01:48,900 >> Hivyo buffer ni kinaenda kuwa cha chars unsigned, ambayo unaweza 33 00:01:48,900 --> 00:01:53,560 kimsingi kutibu sisi ka, na ni kinaenda kuwa cha kawaida kuzuia ukubwa 34 00:01:53,560 --> 00:01:57,950 ambapo, kama sisi nawaambia, kuzuia ukubwa ni 512. 35 00:01:57,950 --> 00:02:03,070 Hivyo JPEGs unaweza kutibu kila kitu kama vitalu ya 512 ka. 36 00:02:03,070 --> 00:02:05,890 >> Sasa tunakwenda kwa kitanzi juu ya faili nzima. 37 00:02:05,890 --> 00:02:12,980 Tunakwenda f kusoma katika buffer wetu moja byte kuzuia ukubwa mara kutoka 38 00:02:12,980 --> 00:02:14,710 kadi dot file ghafi. 39 00:02:14,710 --> 00:02:16,630 Sasa nini f kusoma kurudi? 40 00:02:16,630 --> 00:02:20,050 Kuirudisha idadi ya vitu kwamba ni mafanikio kusoma. 41 00:02:20,050 --> 00:02:27,310 Hivyo kama ni imeweza kusoma 512 ka, kisha tunataka kuona kama hii ilikuwa 42 00:02:27,310 --> 00:02:29,700 JPEG au kuandika kwa JPEG faili. 43 00:02:29,700 --> 00:02:34,450 Na kama ni hakurudi 512 ka, basi ama file kumalizika katika 44 00:02:34,450 --> 00:02:37,870 kesi ambayo tutaweza kuvunja nje ya y kitanzi, au kuna aina fulani ya makosa 45 00:02:37,870 --> 00:02:40,300 katika kesi ambayo tutaweza pia kuvunja nje ya y kitanzi, lakini sisi utasikia wanataka kuripoti 46 00:02:40,300 --> 00:02:41,990 kwamba kitu potoka. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Hivyo kudhani kuwa sisi mafanikio kusoma katika 512 ka, tunataka kuangalia kwanza 49 00:02:47,630 --> 00:02:53,070 kwa kufanya ka hizi kwamba sisi tu kusoma katika kuanza JPEG. 50 00:02:53,070 --> 00:02:56,430 Hivyo kama ni JPEG header ya buffer yetu. 51 00:02:56,430 --> 00:02:58,460 Sasa ni nini JPEG header kufanya? 52 00:02:58,460 --> 00:03:00,120 Hebu tuangalie. 53 00:03:00,120 --> 00:03:05,270 >> Up hapa, tunaona kwamba kazi hii ni kurudi ng'ombe, na kwamba ng'ombe - 54 00:03:05,270 --> 00:03:08,820 vizuri hapa, sisi ni kuangalia kuona kama header zero sawa na mara kwa mara hii na 55 00:03:08,820 --> 00:03:11,880 header moja sawa na mara kwa mara hii na header mbili sawa na mara kwa mara hii, 56 00:03:11,880 --> 00:03:15,640 header tatu sawa na hii au hii mara kwa mara ambapo constants haya yote ni 57 00:03:15,640 --> 00:03:20,340 tu hash inavyoelezwa hapa na ni nini hasa tulivyowaeleza katika spec 58 00:03:20,340 --> 00:03:22,700 kwamba JPEG huanza na. 59 00:03:22,700 --> 00:03:27,300 Na hivyo kazi hii ni kwenda tu kurudi kweli kama buffer hii inawakilisha 60 00:03:27,300 --> 00:03:31,750 mwanzoni mwa msimu mpya JPEG na uongo vinginevyo. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Hivyo kama hii haina kuwakilisha mpya JPEG, kisha sisi kwanza unataka kuangalia ili kuona kama 63 00:03:38,490 --> 00:03:42,030 JPEG faili si sawa na null, katika kesi ambayo sisi karibu yake. 64 00:03:42,030 --> 00:03:44,940 Na hivyo kwa nini sisi haja ya kuangalia kuona kama si null? 65 00:03:44,940 --> 00:03:48,980 Vizuri JPEG ya kwanza kabisa kwamba sisi kupata sisi tayari kuwa na 66 00:03:48,980 --> 00:03:50,440 wazi JPEG faili. 67 00:03:50,440 --> 00:03:55,580 Na hivyo, kama sisi kujaribu karibu, basi sisi siyo kufanya kitu sahihi kabisa. 68 00:03:55,580 --> 00:03:59,090 >> Lakini kila JPEG baadae kwamba sisi kufungua, tunataka karibu 69 00:03:59,090 --> 00:04:00,710 file uliopita. 70 00:04:00,710 --> 00:04:04,630 Hivyo sasa sisi ni kwenda kutumia sprintf kama sisi alisema kabla ya ambapo sisi ni kutumia 71 00:04:04,630 --> 00:04:06,280 buffer JPEG faili jina. 72 00:04:06,280 --> 00:04:09,870 Na sisi ni kwenda kutumia JPEG faili jina format kama muundo wetu. 73 00:04:09,870 --> 00:04:12,030 Na hiyo ni nini? 74 00:04:12,030 --> 00:04:18,450 Up hapa, tunaona kwamba ni asilimia zero 3D.JPEG ambapo zero tatu tu 75 00:04:18,450 --> 00:04:22,089 anasema kwamba tutaweza kutumia integers tatu kwa hii padded na zeros. 76 00:04:22,089 --> 00:04:27,470 Hivyo hii ni jinsi tutaweza kupata zero zero one.JPEG na zero 10.JPEG na kadhalika. 77 00:04:27,470 --> 00:04:29,060 >> Sisi ni kwenda kutumia sprintf. 78 00:04:29,060 --> 00:04:33,760 Na integer kwamba sisi ni kuingiza ndani ya kamba ni JPEGs numb 79 00:04:33,760 --> 00:04:36,380 zinalipwa, ambayo ni ya awali sifuri. 80 00:04:36,380 --> 00:04:39,950 Hivyo file kwanza kufunguliwa ni kwenda kuwa sifuri sifuri sifuri dot JPEG. 81 00:04:39,950 --> 00:04:43,330 Na kisha sisi ni incrementing hivyo file ijayo sisi kufungua itakuwa sifuri sifuri 82 00:04:43,330 --> 00:04:46,830 moja dot JPEG na tutaweza nyongeza ni tena hivyo utakuwa sifuri sifuri mbili dot 83 00:04:46,830 --> 00:04:49,100 JPEG na kadhalika. 84 00:04:49,100 --> 00:04:49,850 >> Sawa. 85 00:04:49,850 --> 00:04:53,210 Hivyo sasa ndani ya JPEG faili jina, sisi kuwa na jina la 86 00:04:53,210 --> 00:04:54,990 faili kwamba tunataka. 87 00:04:54,990 --> 00:04:58,640 Tunaweza f wazi kwamba faili kwa ajili ya kuandika. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 Na mara nyingine tena, sisi haja ya kuangalia kwa kufanya kuhakikisha kwamba faili mafanikio 90 00:05:02,820 --> 00:05:08,460 kufunguliwa tangu kama ilivyokuwa, basi kulikuwa na makosa fulani. 91 00:05:08,460 --> 00:05:13,100 >> Hivyo sasa tumekuwa wamezipata zamani ni hii JPEG sehemu. 92 00:05:13,100 --> 00:05:16,390 Na hapa tunaona tunakwenda kuandika kwa JPEG. 93 00:05:16,390 --> 00:05:20,980 Lakini sisi kwanza kuwa na kuangalia hii ambayo anasema kama JPEG faili haina sawa null. 94 00:05:20,980 --> 00:05:22,490 Kwa nini tunahitaji hiyo? 95 00:05:22,490 --> 00:05:28,020 Vizuri JPEG faili sawa na null wakati sisi sasa kuwa wazi JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Nini kama kadi dot kuanza mbichi pamoja na kundi la ka kwamba 97 00:05:31,870 --> 00:05:33,510 wala kuwakilisha JPEG? 98 00:05:33,510 --> 00:05:36,240 Kisha tunakwenda kutaka ruka juu ya ka hizo. 99 00:05:36,240 --> 00:05:39,600 Kama hatuwezi kuwa na kuangalia hii, basi sisi ni kwenda kuandika kwa unopened 100 00:05:39,600 --> 00:05:45,540 faili kwanza 512 ka ya kadi ambayo si nzuri. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Hivyo kuchukua tuna file wazi, basi sisi ni kwenda kuandika kwa faili kwamba 103 00:05:51,330 --> 00:05:53,290 512 ka kwamba tuna katika buffer yetu. 104 00:05:53,290 --> 00:05:57,390 Na sisi ni mara nyingine tena kuangalia kufanya kuhakikisha kwamba ka 512 kwa mafanikio 105 00:05:57,390 --> 00:06:01,140 ziliandikwa kwa sababu kama hawakuwa mafanikio ya maandishi, basi kitu 106 00:06:01,140 --> 00:06:02,080 potoka. 107 00:06:02,080 --> 00:06:06,540 Tutaweza karibu files yetu, magazeti kwamba kitu potoka, na kurudi. 108 00:06:06,540 --> 00:06:10,940 Kutokana kila kitu huenda kwa usahihi, kisha tutaweza kuweka wanaoendesha kufunga 109 00:06:10,940 --> 00:06:15,060 file zamani, kufungua faili mpya, kuandika data kwa faili mpya, na hivyo 110 00:06:15,060 --> 00:06:20,990 mpaka hatimaye, f hii kusoma anarudi zero ambayo njia 111 00:06:20,990 --> 00:06:23,280 kwamba faili ni kosa. 112 00:06:23,280 --> 00:06:28,490 >> Hivyo sasa kwamba kusoma kadi ni juu, sisi kuona kwamba tunakwenda f karibu 113 00:06:28,490 --> 00:06:33,250 mwisho faili kwamba tulikuwa wazi, lakini sisi ni kuangalia kama JPEG faili 114 00:06:33,250 --> 00:06:34,900 haina sawa null. 115 00:06:34,900 --> 00:06:39,520 Vizuri f karibu mantiki kwa sababu kama sisi ni kufungua files, sisi ni kufunga 116 00:06:39,520 --> 00:06:43,870 file uliopita, lakini mwisho sana file kwamba sisi kufunguliwa kamwe anapata imefungwa. 117 00:06:43,870 --> 00:06:45,580 Hivyo kwamba ni nini hii ni kufanya. 118 00:06:45,580 --> 00:06:47,720 >> Lakini kwa nini sisi haja ya kuangalia kwa null? 119 00:06:47,720 --> 00:06:53,130 Naam nini kama kadi ya dot mbichi hakuwa na JPEG moja ndani yake? 120 00:06:53,130 --> 00:06:56,640 Katika kesi hiyo, tunataka kuwa kamwe kufunguliwa faili. 121 00:06:56,640 --> 00:07:00,230 Na kama sisi kamwe kufungua faili, sisi lazima si kujaribu karibu file hiyo. 122 00:07:00,230 --> 00:07:03,000 Hivyo kwamba ni nini hii kuangalia ni kufanya. 123 00:07:03,000 --> 00:07:07,880 >> Sasa hapa, kama nilivyosema hapo kabla, tunaweza kuwa na kuvunjwa nje kwamba y kitanzi ama kama 124 00:07:07,880 --> 00:07:13,520 kadi kumalizika au kama kuna baadhi makosa kusoma kadi. 125 00:07:13,520 --> 00:07:16,680 Hivyo hii ni kuangalia kuona kama kulikuwa na makosa kusoma kutoka kadi, katika 126 00:07:16,680 --> 00:07:19,400 kesi ambayo, tutaweza kusema kuna mara kusoma makosa. 127 00:07:19,400 --> 00:07:22,130 Hatutaki user kufikiri kila kitu akaenda kwa mafanikio. 128 00:07:22,130 --> 00:07:24,750 Na sisi itabidi kurudi moja kwa makosa. 129 00:07:24,750 --> 00:07:29,580 >> Hatimaye, tutaweza f karibu faili yetu ghafi, kadi yetu dot mbichi, zinaonyesha kwamba 130 00:07:29,580 --> 00:07:34,070 kila kitu akaenda vizuri na kurudi sifuri na hiyo ni yake. 131 00:07:34,070 --> 00:07:36,130 >> Jina langu ni Rob na hii ilikuwa Kuokoa. 132 00:07:36,130 --> 00:07:42,102 >> [Music kucheza]