>> [Music kucheza]
>> Rob BOWDEN: Hi.
Mimi nina Rob, na hebu matumaini kwamba ufumbuzi huu husaidia kuweka wewe
juu ya barabara na kupona.
Basi hebu kuanza.
>> Tunaona kwamba mara moja tuko tu kuhakikisha kwamba sisi ni
kwa kutumia Kuokoa kwa usahihi.
Hivyo matumizi ya lazima tu kuwa kitu kama dot slash kupona.
>> Sasa sisi ni kwenda kufungua inatarajiwa kadi dot file ghafi.
Tunaona hapa kwamba sisi ni kutumia mara kwa mara kusisitiza mbichi jina la faili,
ambayo hadi hapa tuna hash hufafanuliwa kama kadi dot ghafi.
OK.
>> Kwa hiyo, tunahitaji kuhakikisha kwamba mafanikio kufunguliwa kwa sababu kama
hakuwa, basi tunapaswa kuwaonya user.
Lakini kuchukua kwamba ni hivyo, sisi ni sasa kwenda kutangaza buffer ya ukubwa JPEG
faili jina urefu.
Hivyo hii ni kwenda kuwa buffer kwamba tunakwenda sprintf ndani.
>> Kwa hiyo kile ni JPEG faili jina urefu?
Up hapa, tunaona kwamba ni hash hufafanuliwa kama nane.
Hivyo nane nini?
Vizuri file kutokana na itakuwa aitwaye kitu kama sifuri sifuri sifuri.
JPG na kisha tunahitaji backslash sifuri.
Kwa hiyo, tunahitaji buffer ambayo inaweza kuhifadhi wahusika nane.
Sasa tunakwenda na kukabiliana na kwamba kwenda kuweka wimbo wa
JPEGs idadi sisi kupatikana.
>> Na hatimaye, tunakwenda na JPEG faili ambayo ni awali null
ambayo ni kwenda kuwa sasa file wazi kwamba sisi ni kuandika kwa.
Sasa tunakwenda na buffer ya ziada.
Hii si sawa na kama sprintf wetu buffer ambapo buffer hii ni moja
kwamba sisi ni kusoma katika data kutoka kwa kadi dot ghafi.
>> Hivyo buffer ni kinaenda kuwa cha chars unsigned, ambayo unaweza
kimsingi kutibu sisi ka, na ni kinaenda kuwa cha kawaida kuzuia ukubwa
ambapo, kama sisi nawaambia, kuzuia ukubwa ni 512.
Hivyo JPEGs unaweza kutibu kila kitu kama vitalu ya 512 ka.
>> Sasa tunakwenda kwa kitanzi juu ya faili nzima.
Tunakwenda f kusoma katika buffer wetu moja byte kuzuia ukubwa mara kutoka
kadi dot file ghafi.
Sasa nini f kusoma kurudi?
Kuirudisha idadi ya vitu kwamba ni mafanikio kusoma.
Hivyo kama ni imeweza kusoma 512 ka, kisha tunataka kuona kama hii ilikuwa
JPEG au kuandika kwa JPEG faili.
Na kama ni hakurudi 512 ka, basi ama file kumalizika katika
kesi ambayo tutaweza kuvunja nje ya y kitanzi, au kuna aina fulani ya makosa
katika kesi ambayo tutaweza pia kuvunja nje ya y kitanzi, lakini sisi utasikia wanataka kuripoti
kwamba kitu potoka.
>> OK.
Hivyo kudhani kuwa sisi mafanikio kusoma katika 512 ka, tunataka kuangalia kwanza
kwa kufanya ka hizi kwamba sisi tu kusoma katika kuanza JPEG.
Hivyo kama ni JPEG header ya buffer yetu.
Sasa ni nini JPEG header kufanya?
Hebu tuangalie.
>> Up hapa, tunaona kwamba kazi hii ni kurudi ng'ombe, na kwamba ng'ombe -
vizuri hapa, sisi ni kuangalia kuona kama header zero sawa na mara kwa mara hii na
header moja sawa na mara kwa mara hii na header mbili sawa na mara kwa mara hii,
header tatu sawa na hii au hii mara kwa mara ambapo constants haya yote ni
tu hash inavyoelezwa hapa na ni nini hasa tulivyowaeleza katika spec
kwamba JPEG huanza na.
Na hivyo kazi hii ni kwenda tu kurudi kweli kama buffer hii inawakilisha
mwanzoni mwa msimu mpya JPEG na uongo vinginevyo.
>> OK.
Hivyo kama hii haina kuwakilisha mpya JPEG, kisha sisi kwanza unataka kuangalia ili kuona kama
JPEG faili si sawa na null, katika kesi ambayo sisi karibu yake.
Na hivyo kwa nini sisi haja ya kuangalia kuona kama si null?
Vizuri JPEG ya kwanza kabisa kwamba sisi kupata sisi tayari kuwa na
wazi JPEG faili.
Na hivyo, kama sisi kujaribu karibu, basi sisi siyo kufanya kitu sahihi kabisa.
>> Lakini kila JPEG baadae kwamba sisi kufungua, tunataka karibu
file uliopita.
Hivyo sasa sisi ni kwenda kutumia sprintf kama sisi alisema kabla ya ambapo sisi ni kutumia
buffer JPEG faili jina.
Na sisi ni kwenda kutumia JPEG faili jina format kama muundo wetu.
Na hiyo ni nini?
Up hapa, tunaona kwamba ni asilimia zero 3D.JPEG ambapo zero tatu tu
anasema kwamba tutaweza kutumia integers tatu kwa hii padded na zeros.
Hivyo hii ni jinsi tutaweza kupata zero zero one.JPEG na zero 10.JPEG na kadhalika.
>> Sisi ni kwenda kutumia sprintf.
Na integer kwamba sisi ni kuingiza ndani ya kamba ni JPEGs numb
zinalipwa, ambayo ni ya awali sifuri.
Hivyo file kwanza kufunguliwa ni kwenda kuwa sifuri sifuri sifuri dot JPEG.
Na kisha sisi ni incrementing hivyo file ijayo sisi kufungua itakuwa sifuri sifuri
moja dot JPEG na tutaweza nyongeza ni tena hivyo utakuwa sifuri sifuri mbili dot
JPEG na kadhalika.
>> Sawa.
Hivyo sasa ndani ya JPEG faili jina, sisi kuwa na jina la
faili kwamba tunataka.
Tunaweza f wazi kwamba faili kwa ajili ya kuandika.
OK.
Na mara nyingine tena, sisi haja ya kuangalia kwa kufanya kuhakikisha kwamba faili mafanikio
kufunguliwa tangu kama ilivyokuwa, basi kulikuwa na makosa fulani.
>> Hivyo sasa tumekuwa wamezipata zamani ni hii JPEG sehemu.
Na hapa tunaona tunakwenda kuandika kwa JPEG.
Lakini sisi kwanza kuwa na kuangalia hii ambayo anasema kama JPEG faili haina sawa null.
Kwa nini tunahitaji hiyo?
Vizuri JPEG faili sawa na null wakati sisi sasa kuwa wazi JPEG.
>> Nini kama kadi dot kuanza mbichi pamoja na kundi la ka kwamba
wala kuwakilisha JPEG?
Kisha tunakwenda kutaka ruka juu ya ka hizo.
Kama hatuwezi kuwa na kuangalia hii, basi sisi ni kwenda kuandika kwa unopened
faili kwanza 512 ka ya kadi ambayo si nzuri.
OK.
>> Hivyo kuchukua tuna file wazi, basi sisi ni kwenda kuandika kwa faili kwamba
512 ka kwamba tuna katika buffer yetu.
Na sisi ni mara nyingine tena kuangalia kufanya kuhakikisha kwamba ka 512 kwa mafanikio
ziliandikwa kwa sababu kama hawakuwa mafanikio ya maandishi, basi kitu
potoka.
Tutaweza karibu files yetu, magazeti kwamba kitu potoka, na kurudi.
Kutokana kila kitu huenda kwa usahihi, kisha tutaweza kuweka wanaoendesha kufunga
file zamani, kufungua faili mpya, kuandika data kwa faili mpya, na hivyo
mpaka hatimaye, f hii kusoma anarudi zero ambayo njia
kwamba faili ni kosa.
>> Hivyo sasa kwamba kusoma kadi ni juu, sisi kuona kwamba tunakwenda f karibu
mwisho faili kwamba tulikuwa wazi, lakini sisi ni kuangalia kama JPEG faili
haina sawa null.
Vizuri f karibu mantiki kwa sababu kama sisi ni kufungua files, sisi ni kufunga
file uliopita, lakini mwisho sana file kwamba sisi kufunguliwa kamwe anapata imefungwa.
Hivyo kwamba ni nini hii ni kufanya.
>> Lakini kwa nini sisi haja ya kuangalia kwa null?
Naam nini kama kadi ya dot mbichi hakuwa na JPEG moja ndani yake?
Katika kesi hiyo, tunataka kuwa kamwe kufunguliwa faili.
Na kama sisi kamwe kufungua faili, sisi lazima si kujaribu karibu file hiyo.
Hivyo kwamba ni nini hii kuangalia ni kufanya.
>> Sasa hapa, kama nilivyosema hapo kabla, tunaweza kuwa na kuvunjwa nje kwamba y kitanzi ama kama
kadi kumalizika au kama kuna baadhi makosa kusoma kadi.
Hivyo hii ni kuangalia kuona kama kulikuwa na makosa kusoma kutoka kadi, katika
kesi ambayo, tutaweza kusema kuna mara kusoma makosa.
Hatutaki user kufikiri kila kitu akaenda kwa mafanikio.
Na sisi itabidi kurudi moja kwa makosa.
>> Hatimaye, tutaweza f karibu faili yetu ghafi, kadi yetu dot mbichi, zinaonyesha kwamba
kila kitu akaenda vizuri na kurudi sifuri na hiyo ni yake.
>> Jina langu ni Rob na hii ilikuwa Kuokoa.
>> [Music kucheza]