1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [MUSIC PLAYBACK] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Ahoj. 4 00:00:14,080 --> 00:00:17,550 Som Rob, a dúfajme, že Toto riešenie pomáha vás 5 00:00:17,550 --> 00:00:19,600 na ceste k uzdraveniu. 6 00:00:19,600 --> 00:00:22,700 Tak poďme začať. 7 00:00:22,700 --> 00:00:25,660 >> Vidíme, že okamžite sme len aby sa ubezpečil, že sme 8 00:00:25,660 --> 00:00:27,170 používajúce Obnoviť správne. 9 00:00:27,170 --> 00:00:31,490 Takže použitie by malo byť len niečo, ako bodka lomítko obnoviť. 10 00:00:31,490 --> 00:00:35,500 >> Teraz budeme otvorení očakáva karta dot raw súboru. 11 00:00:35,500 --> 00:00:39,740 Vidíme tu, že sme pomocou konštantný názov raw podčiarkovník súboru, 12 00:00:39,740 --> 00:00:44,200 ktoré tu máme hash definovaná ako karta dot raw. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Takže sa musíme uistiť, že úspešne otvoriť, pretože v prípade, že 15 00:00:48,210 --> 00:00:51,150 nie, potom by sme mali varovať užívateľa. 16 00:00:51,150 --> 00:00:56,770 Ale za predpokladu, že to urobili, že sme teraz chystá vyhlásiť vyrovnávaciu pamäť o veľkosti JPEG 17 00:00:56,770 --> 00:00:58,170 dĺžke názvu súboru. 18 00:00:58,170 --> 00:01:02,060 Takže to bude vyrovnávacia pamäť, ktorá budeme sprintf do. 19 00:01:02,060 --> 00:01:04,360 >> Takže to, čo je JPEG súbor názov dĺžka? 20 00:01:04,360 --> 00:01:08,490 Až tu, vidíme, že je to hash definovaná ako osem. 21 00:01:08,490 --> 00:01:10,670 Tak prečo osem? 22 00:01:10,670 --> 00:01:15,150 No daný súbor bude pomenovaný niečo ako nula nula nula. 23 00:01:15,150 --> 00:01:19,460 JPG a potom musíme spätné lomítko nula. 24 00:01:19,460 --> 00:01:22,720 Takže potrebujeme vyrovnávacej pamäte, ktorý dokáže uložiť až osem znakov. 25 00:01:22,720 --> 00:01:25,190 Teraz budeme mať čítač, ktorý je bude sledovať 26 00:01:25,190 --> 00:01:27,780 Číslo JPEG sme našli. 27 00:01:27,780 --> 00:01:31,590 >> A konečne budeme mať Súbor JPEG, ktorý je spočiatku null 28 00:01:31,590 --> 00:01:35,920 ktorá sa bude v súčasnosti otvoriť súbor, ktorý sme písomne. 29 00:01:35,920 --> 00:01:37,540 Teraz budeme mať ďalšie vyrovnávacej pamäti. 30 00:01:37,540 --> 00:01:41,350 To nie je to isté ako naše sprintf vyrovnávacia pamäť, kde tejto vyrovnávacej pamäti, je ten, 31 00:01:41,350 --> 00:01:45,020 že čítate v dátach z karty dot surové. 32 00:01:45,020 --> 00:01:48,900 >> Takže vyrovnávacia pamäť bude mať nepodpísané znakov, ktoré môžete 33 00:01:48,900 --> 00:01:53,560 v podstate len liečiť nám bytov, a to bude mať veľkosť veľkosť bloku 34 00:01:53,560 --> 00:01:57,950 kde, ako sme vám povedať, veľkosť bloku je 512. 35 00:01:57,950 --> 00:02:03,070 Takže JPEG môžete liečiť všetko ako bloky 512 bajtov. 36 00:02:03,070 --> 00:02:05,890 >> Teraz ideme do slučky v celom súbore. 37 00:02:05,890 --> 00:02:12,980 Budeme f čítať do našej pamäti jediný časy byte veľkosť bloku z 38 00:02:12,980 --> 00:02:14,710 karta dot raw súboru. 39 00:02:14,710 --> 00:02:16,630 A teraz, čo sa f čítať vrátiť? 40 00:02:16,630 --> 00:02:20,050 Vracia počet položiek že úspešne čítať. 41 00:02:20,050 --> 00:02:27,310 Takže ak sa jej podarilo čítať 512 bajtov, potom Ak chceme zistiť, či sa jedná o 42 00:02:27,310 --> 00:02:29,700 JPEG alebo napísať, že do súboru JPEG. 43 00:02:29,700 --> 00:02:34,450 A ak sa nevrátil 512 bajtov, potom buď súbor skončila 44 00:02:34,450 --> 00:02:37,870 takom prípade budeme vymaniť sa z y slučky, alebo tam sú nejaké chyby 45 00:02:37,870 --> 00:02:40,300 v takom prípade budeme tiež vymaniť z y slučka, ale budeme chcieť nahlásiť 46 00:02:40,300 --> 00:02:41,990 že sa niečo pokazilo. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Takže za predpokladu, že sa nám podarilo prečítať v 512 bytoch, chceme, aby prvej kontrole 49 00:02:47,630 --> 00:02:53,070 aby sa, že tieto byty, ktoré sme len čítať začať JPEG. 50 00:02:53,070 --> 00:02:56,430 Takže ak je JPEG záhlaví našej pamäti. 51 00:02:56,430 --> 00:02:58,460 Teraz, čo to je hlavička JPEG robí? 52 00:02:58,460 --> 00:03:00,120 Poďme sa pozrieť. 53 00:03:00,120 --> 00:03:05,270 >> Až tu, vidíme, že táto funkcia je vracia býka, a že býk - 54 00:03:05,270 --> 00:03:08,820 aj tu, budeme kontrolovať, či záhlavie nula rovná túto konštantu a 55 00:03:08,820 --> 00:03:11,880 header jedna rovná sa táto konštanta a header dva sa rovná túto konštantu, 56 00:03:11,880 --> 00:03:15,640 header tri sa rovná tejto alebo tejto konštanta, kde všetky tieto konštanty sú 57 00:03:15,640 --> 00:03:20,340 len hash definovaná tu a sú presne to, čo sme vám v spec 58 00:03:20,340 --> 00:03:22,700 že JPEG začína. 59 00:03:22,700 --> 00:03:27,300 A tak táto funkcia je len tak vráti true, ak tento vyrovnávacia pamäť predstavuje 60 00:03:27,300 --> 00:03:31,750 Začiatok nového formátu JPEG a v opačnom prípade false. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Takže ak to robí predstavujú novú JPEG, potom sme sa prvýkrát chcete skontrolovať, či 63 00:03:38,490 --> 00:03:42,030 Súbor JPEG nie je rovné null, V takom prípade by sme ho zatvorte. 64 00:03:42,030 --> 00:03:44,940 A tak prečo musíme skontrolovať aby zistil, či to nie je null? 65 00:03:44,940 --> 00:03:48,980 No prvý JPEG, ktoré sme tu nebudeme už mať 66 00:03:48,980 --> 00:03:50,440 otvoriť súbor JPEG. 67 00:03:50,440 --> 00:03:55,580 A tak, keď sa budeme snažiť uzavrieť, potom my nerobíme niečo úplne v poriadku. 68 00:03:55,580 --> 00:03:59,090 >> Ale každý následný JPEG, ktoré sme sa otvoriť, chceme uzavrieť 69 00:03:59,090 --> 00:04:00,710 Predchádzajúci obrázok. 70 00:04:00,710 --> 00:04:04,630 Takže teraz budeme používať sprintf ako my povedal, kde sme pomocou 71 00:04:04,630 --> 00:04:06,280 Názov vyrovnávacej JPEG súboru. 72 00:04:06,280 --> 00:04:09,870 A budeme používať súbor JPEG meno formáte ako náš formáte. 73 00:04:09,870 --> 00:04:12,030 A to je čo? 74 00:04:12,030 --> 00:04:18,450 Až tu, vidíme, že to je percent nula 3D.JPEG kde nula tri práve 75 00:04:18,450 --> 00:04:22,089 hovorí, že budeme používať tri celé čísla pre tento doplnené nulami. 76 00:04:22,089 --> 00:04:27,470 Takže to je to, ako budeme mať nula nula one.JPEG a nulové 10.jpeg a tak ďalej. 77 00:04:27,470 --> 00:04:29,060 >> Budeme používať sprintf. 78 00:04:29,060 --> 00:04:33,760 A celé číslo, ktoré sme vkladanie na reťazec Necitlivé JPEG 79 00:04:33,760 --> 00:04:36,380 späť, čo je pôvodne nule. 80 00:04:36,380 --> 00:04:39,950 Takže prvé otvorenie súboru sa deje byť nula nula nula bodka JPEG. 81 00:04:39,950 --> 00:04:43,330 A potom sme to postupne tak, Ďalší obrázok sa otvorí bude nula nula 82 00:04:43,330 --> 00:04:46,830 jedna bodka JPEG a budeme zvyšovať ju znovu tak, že to bude nula nula dva bodka 83 00:04:46,830 --> 00:04:49,100 JPEG a tak ďalej. 84 00:04:49,100 --> 00:04:49,850 >> Dobrá. 85 00:04:49,850 --> 00:04:53,210 Takže teraz vnútri súboru JPEG meno, máme meno 86 00:04:53,210 --> 00:04:54,990 súbor, ktorý chceme. 87 00:04:54,990 --> 00:04:58,640 Môžeme f otvoriť súbor pre zápis. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 A opäť, je potrebné skontrolovať, aby sa Uistite sa, že súbor úspešne 90 00:05:02,820 --> 00:05:08,460 otvorené, pretože ak sa tak nestalo, potom tam bola nejaká chyba. 91 00:05:08,460 --> 00:05:13,100 >> Takže teraz sme sa dostali okolo je táto časť JPEG. 92 00:05:13,100 --> 00:05:16,390 A tu vidíme, ideme zapisovať do JPEG. 93 00:05:16,390 --> 00:05:20,980 Ale musíme najprv túto kontrolu, ktorá hovorí, ak súbor JPEG nie je rovné null. 94 00:05:20,980 --> 00:05:22,490 Prečo potrebujeme to? 95 00:05:22,490 --> 00:05:28,020 No súbor JPEG sa rovná null, keď sme V súčasnej dobe majú otvorenú JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Čo keď surové začína karta dot s partiou bajtov 97 00:05:31,870 --> 00:05:33,510 nepredstavujú JPEG? 98 00:05:33,510 --> 00:05:36,240 Potom budeme chcieť preskočiť týchto bytov. 99 00:05:36,240 --> 00:05:39,600 Ak nemáme túto kontrolu, a potom sme bude písať na neotvorené 100 00:05:39,600 --> 00:05:45,540 súbor prvých 512 bajtov karta, ktorá nie je dobrá. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Takže za predpokladu, že máme otvorený súbor, potom budeme zapisovať do tohto súboru 103 00:05:51,330 --> 00:05:53,290 512 bajtov, ktoré máme v našej pamäti. 104 00:05:53,290 --> 00:05:57,390 A sme opäť kontrolu, aby sa Uistite sa, že je 512 bajtov úspešne 105 00:05:57,390 --> 00:06:01,140 bolo napísané, pretože keby neboli úspešne zapísaná, potom sa niečo 106 00:06:01,140 --> 00:06:02,080 zvrtlo. 107 00:06:02,080 --> 00:06:06,540 Budeme zatvárať súbory, tlačiť, ktoré sa niečo pokazilo, a návrat. 108 00:06:06,540 --> 00:06:10,940 Za predpokladu, že ide všetko správne, potom budeme držať opakovanie zatváranie 109 00:06:10,940 --> 00:06:15,060 starý súbor, otvorte nový súbor, písanie dát do nového súboru, a tak 110 00:06:15,060 --> 00:06:20,990 tak dlho, kým sa konečne, tento f čítanie vráti nulu, ktorá znamená 111 00:06:20,990 --> 00:06:23,280 že súbor je hotovo. 112 00:06:23,280 --> 00:06:28,490 >> Takže teraz, že čítanie karty je u konca, my vidieť, že ideme na f zavrieť 113 00:06:28,490 --> 00:06:33,250 posledný súbor, ktorý sme mali otvorené, ale budeme kontrolovať, či súbor JPEG 114 00:06:33,250 --> 00:06:34,900 nie je rovné null. 115 00:06:34,900 --> 00:06:39,520 No f blízkosti dáva zmysel, pretože ako sme otvorení súborov, sme zatvorenie 116 00:06:39,520 --> 00:06:43,870 Predchádzajúci obrázok, ale úplne posledný súbor, ktorý sme otvorili nikdy nedostane uzavretý. 117 00:06:43,870 --> 00:06:45,580 Takže to je to, čo to robí. 118 00:06:45,580 --> 00:06:47,720 >> Ale prečo musíme skontrolovať null? 119 00:06:47,720 --> 00:06:53,130 No čo keď karta bodka surové nie majú jediný JPEG vnútri nej? 120 00:06:53,130 --> 00:06:56,640 V takom prípade by sme museli Nikdy otvoril súbor. 121 00:06:56,640 --> 00:07:00,230 A keď sme sa nikdy otvoriť súbor, mali by sme nesnaží sa uzavrieť tento súbor. 122 00:07:00,230 --> 00:07:03,000 Takže to je to, čo sa táto kontrola robí. 123 00:07:03,000 --> 00:07:07,880 >> A teraz, ako som už povedal skôr, mohli sme boli rozdelené na to, že y slučky, ak sú 124 00:07:07,880 --> 00:07:13,520 karta skončila, alebo v prípade, že sú čítanie z karty nejaká chyba. 125 00:07:13,520 --> 00:07:16,680 Tak to je kontrola, či bol čítanie z karty, na chyby 126 00:07:16,680 --> 00:07:19,400 takom prípade, budeme tu hovoriť Bola chyba čítania. 127 00:07:19,400 --> 00:07:22,130 Nechceme, aby užívateľ myslieť všetko prebehlo úspešne. 128 00:07:22,130 --> 00:07:24,750 A vrátime jednu pre chybu. 129 00:07:24,750 --> 00:07:29,580 >> Nakoniec, budeme f uzavrieť našu raw súbor, naše karty dot surové, čo znamená, že 130 00:07:29,580 --> 00:07:34,070 všetko išlo dobre a návrat nulu a to je všetko. 131 00:07:34,070 --> 00:07:36,130 >> Volám sa Rob a to obnoviť. 132 00:07:36,130 --> 00:07:42,102 >> [MUSIC PLAYBACK]