1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Tónlist spila] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Hæ. 4 00:00:14,080 --> 00:00:17,550 Ég er Rob, og við skulum vona að Þessi lausn hjálpar setja þig 5 00:00:17,550 --> 00:00:19,600 á veginum til bata. 6 00:00:19,600 --> 00:00:22,700 Svo skulum við hefjast handa. 7 00:00:22,700 --> 00:00:25,660 >> Við sjáum að strax við erum bara til að vera viss um að við erum 8 00:00:25,660 --> 00:00:27,170 using batna rétt. 9 00:00:27,170 --> 00:00:31,490 Svo notkun ætti bara að vera eitthvað eins punktur rista batna. 10 00:00:31,490 --> 00:00:35,500 >> Nú ætlum við að opna ráð kort punktur hrár skrá. 11 00:00:35,500 --> 00:00:39,740 Við sjáum hér að við erum að nota stöðug hrár undirstrik skrá nafn, 12 00:00:39,740 --> 00:00:44,200 sem upp hér höfum kjötkássa skilgreind sem kortið punktur hrár. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Þannig að við þurfum að ganga úr skugga um að það tókst opnaði því ef það 15 00:00:48,210 --> 00:00:51,150 ekki, þá ættum við að vara notandann. 16 00:00:51,150 --> 00:00:56,770 En miðað við að það gerði, við erum nú að fara að lýsa yfir biðminni stærð JPEG 17 00:00:56,770 --> 00:00:58,170 skrá nafn lengd. 18 00:00:58,170 --> 00:01:02,060 Þannig að þetta er að fara til vera the biðminni sem við erum að fara að sprintf inn. 19 00:01:02,060 --> 00:01:04,360 >> Svo er það JPEG skrá nafn lengd? 20 00:01:04,360 --> 00:01:08,490 Upp hér, sjáum við að það er kjötkássa skilgreind sem átta. 21 00:01:08,490 --> 00:01:10,670 Svo hvers vegna átta? 22 00:01:10,670 --> 00:01:15,150 Jæja gefið skrá mun heita eitthvað eins og núll núll núll. 23 00:01:15,150 --> 00:01:19,460 JPG og þá þurfum við að sviga núll. 24 00:01:19,460 --> 00:01:22,720 Þannig að við þurfum biðminni sem getur geyma átta stafir. 25 00:01:22,720 --> 00:01:25,190 Nú erum við að fara að hafa teljara sem er fara að halda utan um 26 00:01:25,190 --> 00:01:27,780 Fjöldi JPEG við fundum. 27 00:01:27,780 --> 00:01:31,590 >> Og að lokum, við erum að fara að hafa JPEG skrá sem er upphaflega núll 28 00:01:31,590 --> 00:01:35,920 sem er að fara til vera the nú opna skrá sem við erum að skrifa á. 29 00:01:35,920 --> 00:01:37,540 Nú við erum að fara að hafa til viðbótar Buffer. 30 00:01:37,540 --> 00:01:41,350 Þetta er ekki það sama og sprintf okkar stuðpúði þar sem þessum dúa er sá 31 00:01:41,350 --> 00:01:45,020 sem við erum að lesa í gögnum úr kortinu punktur hrár. 32 00:01:45,020 --> 00:01:48,900 >> Svo biðminni er að fara að vera á óundirritaður stafir sem þú getur 33 00:01:48,900 --> 00:01:53,560 í rauninni bara fram við okkur bæti, og það er að fara að vera af stærð blokk stærð 34 00:01:53,560 --> 00:01:57,950 þar, eins og við sagt þér, blokk stærð er 512. 35 00:01:57,950 --> 00:02:03,070 Svo JPEG þú getur skemmtun allt eins blokkir af 512 bæti. 36 00:02:03,070 --> 00:02:05,890 >> Nú við erum að fara að lykkja yfir allt skrá. 37 00:02:05,890 --> 00:02:12,980 Við erum að fara að f lesa í biðminni okkar eitt bæti blokk stærð sinnum frá 38 00:02:12,980 --> 00:02:14,710 kortið punktur hrár skrá. 39 00:02:14,710 --> 00:02:16,630 Nú hvað gerir F lesa aftur? 40 00:02:16,630 --> 00:02:20,050 Það skilar fjölda liða að það að lesa með góðum árangri. 41 00:02:20,050 --> 00:02:27,310 Þannig að ef það tókst að lesa 512 bæti, þá við viljum sjá hvort þetta væri 42 00:02:27,310 --> 00:02:29,700 JPEG eða skrifa það í JPEG skrá. 43 00:02:29,700 --> 00:02:34,450 Og ef það var ekki aftur 512 bæti, þá annaðhvort skrá er lokið í 44 00:02:34,450 --> 00:02:37,870 en þá munum við brjótast út úr y lykkja, eða það eru einhvers konar villa 45 00:02:37,870 --> 00:02:40,300 í því tilviki við munum einnig að brjótast út úr y lykkja, en við munum vilja til að tilkynna 46 00:02:40,300 --> 00:02:41,990 að eitthvað fór úrskeiðis. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Svo miðað við að okkur tókst að lesa í 512 bæti, viljum við fyrstu athugun 49 00:02:47,630 --> 00:02:53,070 að gera að þessar bæt sem við bara lesa í hefja JPEG. 50 00:02:53,070 --> 00:02:56,430 Svo ef er JPEG haus biðminni okkar. 51 00:02:56,430 --> 00:02:58,460 Nú hvað það er JPEG haus að gera? 52 00:02:58,460 --> 00:03:00,120 Skulum líta. 53 00:03:00,120 --> 00:03:05,270 >> Upp hér, sjáum við að þessi aðgerð er aftur naut, og að naut - 54 00:03:05,270 --> 00:03:08,820 vel hér, við erum að athuga hvort haus núll jafngildir Þessi fasti og 55 00:03:08,820 --> 00:03:11,880 haus einn jafngildir Þessi fasti og haus tveir jafngildir þessum föstu, 56 00:03:11,880 --> 00:03:15,640 haus þrjú jafngildir þetta eða þetta fasti þar sem allir þessir fastar eru 57 00:03:15,640 --> 00:03:20,340 bara kjötkássa skilgreind hér og eru nákvæmlega það sem við sagði þér í sérstakur 58 00:03:20,340 --> 00:03:22,700 að JPEG hefst með. 59 00:03:22,700 --> 00:03:27,300 Og svo þessi aðgerð er bara að fara að return true ef þetta buffer táknar 60 00:03:27,300 --> 00:03:31,750 upphaf nýs JPEG og ósönn annars. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Þannig að ef þetta virkar tákna nýja JPEG, þá viljum við fyrst að athuga hvort 63 00:03:38,490 --> 00:03:42,030 JPEG skrá er ekki jafnt og null, í því tilviki við að loka því. 64 00:03:42,030 --> 00:03:44,940 Og svo hvers vegna þurfum við að athuga til að sjá hvort það er ekki null? 65 00:03:44,940 --> 00:03:48,980 Jæja fyrsta JPEG sem við finnum við ekki þegar hafa 66 00:03:48,980 --> 00:03:50,440 opið JPEG skrá. 67 00:03:50,440 --> 00:03:55,580 Og svo, ef við reynum að loka það, þá við erum ekki að gera eitthvað alveg rétt. 68 00:03:55,580 --> 00:03:59,090 >> En sérhver síðari JPEG sem við opnum, viljum við að loka 69 00:03:59,090 --> 00:04:00,710 fyrri skrá. 70 00:04:00,710 --> 00:04:04,630 Svo nú erum við að fara að nota sprintf sem vér sagði áður þar sem við erum að nota 71 00:04:04,630 --> 00:04:06,280 biðminni JPEG skrá nafn. 72 00:04:06,280 --> 00:04:09,870 Og við erum að fara að nota JPEG skrá nafn sniði eins snið okkar. 73 00:04:09,870 --> 00:04:12,030 Og hvað er það? 74 00:04:12,030 --> 00:04:18,450 Upp hér, sjáum við að það er prósent núll 3D.JPEG þar sem núll þrjú bara 75 00:04:18,450 --> 00:04:22,089 segir að við munum nota þrjár heiltölur fyrir þetta padded með núllum. 76 00:04:22,089 --> 00:04:27,470 Svo er þetta hvernig við munum fá núll núll one.JPEG og núll 10.JPEG og svo framvegis. 77 00:04:27,470 --> 00:04:29,060 >> Við erum að fara að nota sprintf. 78 00:04:29,060 --> 00:04:33,760 Og heiltala sem við erum að setja í band er dofinn JPEG 79 00:04:33,760 --> 00:04:36,380 batna, sem er upphaflega núll. 80 00:04:36,380 --> 00:04:39,950 Þannig að fyrsta skráin opnuð er að fara að vera núll núll núll punktur JPEG. 81 00:04:39,950 --> 00:04:43,330 Og þá erum við incrementing það þannig að næstu skrá við opnum verður núll núll 82 00:04:43,330 --> 00:04:46,830 einn punktur JPEG og við munum hækka það aftur svo það verður núll núll tveir punktur 83 00:04:46,830 --> 00:04:49,100 JPEG og svo framvegis. 84 00:04:49,100 --> 00:04:49,850 >> Allt í lagi. 85 00:04:49,850 --> 00:04:53,210 Svo nú innan JPEG skrána nafn, höfum við nafn hins 86 00:04:53,210 --> 00:04:54,990 skrá sem við viljum. 87 00:04:54,990 --> 00:04:58,640 Við getum F opna þá skrá til að skrifa. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 Og enn og aftur, við þurfum að athuga til að úr skugga um að skrá með góðum árangri 90 00:05:02,820 --> 00:05:08,460 opnaði síðan ef það gerði það ekki, þá það var einhver villa. 91 00:05:08,460 --> 00:05:13,100 >> Svo nú höfum við fengið framhjá er þetta JPEG hluti. 92 00:05:13,100 --> 00:05:16,390 Og hér sjáum við að við erum að fara að skrifa á JPEG. 93 00:05:16,390 --> 00:05:20,980 En við höfum fyrst þetta ávísun sem segir ef JPEG skrá hjartarskinn ekki jafn null. 94 00:05:20,980 --> 00:05:22,490 Hvers vegna þurfum við það? 95 00:05:22,490 --> 00:05:28,020 Jæja JPEG skrá jafngildir null þegar við nú hafa opið JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Hvað ef kortið punktur hrár byrjar með fullt af bytes sem 97 00:05:31,870 --> 00:05:33,510 ekki tákna JPEG? 98 00:05:33,510 --> 00:05:36,240 Þá erum við að fara til að vilja sleppa yfir þeim bæti. 99 00:05:36,240 --> 00:05:39,600 Ef við höfum ekki þessa ávísun, þá erum við að fara að skrifa í ónotaðri 100 00:05:39,600 --> 00:05:45,540 skrá fyrstu 512 bytes kortið sem er ekki gott. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Svo miðað við að hafa opinn skrá, þá við erum að fara að skrifa til að skrá sem 103 00:05:51,330 --> 00:05:53,290 512 bytes sem við höfum í biðminni okkar. 104 00:05:53,290 --> 00:05:57,390 Og við erum enn og aftur stöðva til gera viss um að 512 bæt tókst 105 00:05:57,390 --> 00:06:01,140 voru skrifaðar því ef þeir voru ekki vistuð, svo eitthvað 106 00:06:01,140 --> 00:06:02,080 fór úrskeiðis. 107 00:06:02,080 --> 00:06:06,540 Við munum loka skrár okkar, prenta það eitthvað fór úrskeiðis, og aftur. 108 00:06:06,540 --> 00:06:10,940 Miðað allt fer á réttan hátt, þá við munum halda lykkja lokun á 109 00:06:10,940 --> 00:06:15,060 Gamla skráin, opna nýja skrá, skrifa gögn til nýja skrá, og svo 110 00:06:15,060 --> 00:06:20,990 á þar til að lokum, þetta F lesið skilar núll þar sem búnaðurinn 111 00:06:20,990 --> 00:06:23,280 að skrá er lokið. 112 00:06:23,280 --> 00:06:28,490 >> Svo nú er að kortið lestur er yfir, við sjá að við erum að fara að f loka 113 00:06:28,490 --> 00:06:33,250 síðasta lagið sem við höfðum opið, en Við erum að athuga hvort JPEG skrá 114 00:06:33,250 --> 00:06:34,900 ekki jafn null. 115 00:06:34,900 --> 00:06:39,520 Jæja f nærri vit því eins við erum að opna skrár, við erum að loka 116 00:06:39,520 --> 00:06:43,870 fyrri skrá, en mjög síðasta skrá sem við opnuðum aldrei gets lokað. 117 00:06:43,870 --> 00:06:45,580 Svo er það sem þetta er að gera. 118 00:06:45,580 --> 00:06:47,720 >> En hvers vegna þurfum við að athuga hvort núll? 119 00:06:47,720 --> 00:06:53,130 Jæja hvað ef kortið punktur hrár gerði ekki hafa einn JPEG inni af því? 120 00:06:53,130 --> 00:06:56,640 Í því tilviki, vildi að við þurfum aldrei opnað skrá. 121 00:06:56,640 --> 00:07:00,230 Og ef við aldrei að opna skrá, ættum við ekki reyna að loka þessa skrá. 122 00:07:00,230 --> 00:07:03,000 Svo er það sem þessi stöðva er að gera. 123 00:07:03,000 --> 00:07:07,880 >> Nú hér, eins og ég sagði áður, við gátum hafa brotist út að y lykkja annaðhvort ef 124 00:07:07,880 --> 00:07:13,520 kortið er lokið eða ef það eru sumir villa við lestur úr kortinu. 125 00:07:13,520 --> 00:07:16,680 Þannig að þetta er að athuga hvort það væri villa lesa af kortinu, í 126 00:07:16,680 --> 00:07:19,400 því tilviki, við munum segja að það kom villa við lestur. 127 00:07:19,400 --> 00:07:22,130 Við viljum ekki notandi til að hugsa allt gekk giftusamlega. 128 00:07:22,130 --> 00:07:24,750 Og við munum fara aftur einn fyrir mistök. 129 00:07:24,750 --> 00:07:29,580 >> Að lokum munum við f-loka hrár skrá okkar, kortið okkar punktur hrátt, til að gefa til kynna að 130 00:07:29,580 --> 00:07:34,070 allt gekk vel og aftur núll og það er það. 131 00:07:34,070 --> 00:07:36,130 >> Mitt nafn er Rob og þetta var batna. 132 00:07:36,130 --> 00:07:42,102 >> [Tónlist spila]