>> [MUSIC PLAYBACK]
>> ROB BOWDEN: Ahoj.
Som Rob, a dúfajme, že Toto riešenie pomáha vás
na ceste k uzdraveniu.
Tak poďme začať.
>> Vidíme, že okamžite sme len aby sa ubezpečil, že sme
používajúce Obnoviť správne.
Takže použitie by malo byť len niečo, ako bodka lomítko obnoviť.
>> Teraz budeme otvorení očakáva karta dot raw súboru.
Vidíme tu, že sme pomocou konštantný názov raw podčiarkovník súboru,
ktoré tu máme hash definovaná ako karta dot raw.
OK.
>> Takže sa musíme uistiť, že úspešne otvoriť, pretože v prípade, že
nie, potom by sme mali varovať užívateľa.
Ale za predpokladu, že to urobili, že sme teraz chystá vyhlásiť vyrovnávaciu pamäť o veľkosti JPEG
dĺžke názvu súboru.
Takže to bude vyrovnávacia pamäť, ktorá budeme sprintf do.
>> Takže to, čo je JPEG súbor názov dĺžka?
Až tu, vidíme, že je to hash definovaná ako osem.
Tak prečo osem?
No daný súbor bude pomenovaný niečo ako nula nula nula.
JPG a potom musíme spätné lomítko nula.
Takže potrebujeme vyrovnávacej pamäte, ktorý dokáže uložiť až osem znakov.
Teraz budeme mať čítač, ktorý je bude sledovať
Číslo JPEG sme našli.
>> A konečne budeme mať Súbor JPEG, ktorý je spočiatku null
ktorá sa bude v súčasnosti otvoriť súbor, ktorý sme písomne.
Teraz budeme mať ďalšie vyrovnávacej pamäti.
To nie je to isté ako naše sprintf vyrovnávacia pamäť, kde tejto vyrovnávacej pamäti, je ten,
že čítate v dátach z karty dot surové.
>> Takže vyrovnávacia pamäť bude mať nepodpísané znakov, ktoré môžete
v podstate len liečiť nám bytov, a to bude mať veľkosť veľkosť bloku
kde, ako sme vám povedať, veľkosť bloku je 512.
Takže JPEG môžete liečiť všetko ako bloky 512 bajtov.
>> Teraz ideme do slučky v celom súbore.
Budeme f čítať do našej pamäti jediný časy byte veľkosť bloku z
karta dot raw súboru.
A teraz, čo sa f čítať vrátiť?
Vracia počet položiek že úspešne čítať.
Takže ak sa jej podarilo čítať 512 bajtov, potom Ak chceme zistiť, či sa jedná o
JPEG alebo napísať, že do súboru JPEG.
A ak sa nevrátil 512 bajtov, potom buď súbor skončila
takom prípade budeme vymaniť sa z y slučky, alebo tam sú nejaké chyby
v takom prípade budeme tiež vymaniť z y slučka, ale budeme chcieť nahlásiť
že sa niečo pokazilo.
>> OK.
Takže za predpokladu, že sa nám podarilo prečítať v 512 bytoch, chceme, aby prvej kontrole
aby sa, že tieto byty, ktoré sme len čítať začať JPEG.
Takže ak je JPEG záhlaví našej pamäti.
Teraz, čo to je hlavička JPEG robí?
Poďme sa pozrieť.
>> Až tu, vidíme, že táto funkcia je vracia býka, a že býk -
aj tu, budeme kontrolovať, či záhlavie nula rovná túto konštantu a
header jedna rovná sa táto konštanta a header dva sa rovná túto konštantu,
header tri sa rovná tejto alebo tejto konštanta, kde všetky tieto konštanty sú
len hash definovaná tu a sú presne to, čo sme vám v spec
že JPEG začína.
A tak táto funkcia je len tak vráti true, ak tento vyrovnávacia pamäť predstavuje
Začiatok nového formátu JPEG a v opačnom prípade false.
>> OK.
Takže ak to robí predstavujú novú JPEG, potom sme sa prvýkrát chcete skontrolovať, či
Súbor JPEG nie je rovné null, V takom prípade by sme ho zatvorte.
A tak prečo musíme skontrolovať aby zistil, či to nie je null?
No prvý JPEG, ktoré sme tu nebudeme už mať
otvoriť súbor JPEG.
A tak, keď sa budeme snažiť uzavrieť, potom my nerobíme niečo úplne v poriadku.
>> Ale každý následný JPEG, ktoré sme sa otvoriť, chceme uzavrieť
Predchádzajúci obrázok.
Takže teraz budeme používať sprintf ako my povedal, kde sme pomocou
Názov vyrovnávacej JPEG súboru.
A budeme používať súbor JPEG meno formáte ako náš formáte.
A to je čo?
Až tu, vidíme, že to je percent nula 3D.JPEG kde nula tri práve
hovorí, že budeme používať tri celé čísla pre tento doplnené nulami.
Takže to je to, ako budeme mať nula nula one.JPEG a nulové 10.jpeg a tak ďalej.
>> Budeme používať sprintf.
A celé číslo, ktoré sme vkladanie na reťazec Necitlivé JPEG
späť, čo je pôvodne nule.
Takže prvé otvorenie súboru sa deje byť nula nula nula bodka JPEG.
A potom sme to postupne tak, Ďalší obrázok sa otvorí bude nula nula
jedna bodka JPEG a budeme zvyšovať ju znovu tak, že to bude nula nula dva bodka
JPEG a tak ďalej.
>> Dobrá.
Takže teraz vnútri súboru JPEG meno, máme meno
súbor, ktorý chceme.
Môžeme f otvoriť súbor pre zápis.
OK.
A opäť, je potrebné skontrolovať, aby sa Uistite sa, že súbor úspešne
otvorené, pretože ak sa tak nestalo, potom tam bola nejaká chyba.
>> Takže teraz sme sa dostali okolo je táto časť JPEG.
A tu vidíme, ideme zapisovať do JPEG.
Ale musíme najprv túto kontrolu, ktorá hovorí, ak súbor JPEG nie je rovné null.
Prečo potrebujeme to?
No súbor JPEG sa rovná null, keď sme V súčasnej dobe majú otvorenú JPEG.
>> Čo keď surové začína karta dot s partiou bajtov
nepredstavujú JPEG?
Potom budeme chcieť preskočiť týchto bytov.
Ak nemáme túto kontrolu, a potom sme bude písať na neotvorené
súbor prvých 512 bajtov karta, ktorá nie je dobrá.
OK.
>> Takže za predpokladu, že máme otvorený súbor, potom budeme zapisovať do tohto súboru
512 bajtov, ktoré máme v našej pamäti.
A sme opäť kontrolu, aby sa Uistite sa, že je 512 bajtov úspešne
bolo napísané, pretože keby neboli úspešne zapísaná, potom sa niečo
zvrtlo.
Budeme zatvárať súbory, tlačiť, ktoré sa niečo pokazilo, a návrat.
Za predpokladu, že ide všetko správne, potom budeme držať opakovanie zatváranie
starý súbor, otvorte nový súbor, písanie dát do nového súboru, a tak
tak dlho, kým sa konečne, tento f čítanie vráti nulu, ktorá znamená
že súbor je hotovo.
>> Takže teraz, že čítanie karty je u konca, my vidieť, že ideme na f zavrieť
posledný súbor, ktorý sme mali otvorené, ale budeme kontrolovať, či súbor JPEG
nie je rovné null.
No f blízkosti dáva zmysel, pretože ako sme otvorení súborov, sme zatvorenie
Predchádzajúci obrázok, ale úplne posledný súbor, ktorý sme otvorili nikdy nedostane uzavretý.
Takže to je to, čo to robí.
>> Ale prečo musíme skontrolovať null?
No čo keď karta bodka surové nie majú jediný JPEG vnútri nej?
V takom prípade by sme museli Nikdy otvoril súbor.
A keď sme sa nikdy otvoriť súbor, mali by sme nesnaží sa uzavrieť tento súbor.
Takže to je to, čo sa táto kontrola robí.
>> A teraz, ako som už povedal skôr, mohli sme boli rozdelené na to, že y slučky, ak sú
karta skončila, alebo v prípade, že sú čítanie z karty nejaká chyba.
Tak to je kontrola, či bol čítanie z karty, na chyby
takom prípade, budeme tu hovoriť Bola chyba čítania.
Nechceme, aby užívateľ myslieť všetko prebehlo úspešne.
A vrátime jednu pre chybu.
>> Nakoniec, budeme f uzavrieť našu raw súbor, naše karty dot surové, čo znamená, že
všetko išlo dobre a návrat nulu a to je všetko.
>> Volám sa Rob a to obnoviť.
>> [MUSIC PLAYBACK]