1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Musika jotzen] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Kaixo. 4 00:00:14,080 --> 00:00:17,550 Nago Rob, eta dezagun espero Irtenbide hau jarri duzu laguntzen 5 00:00:17,550 --> 00:00:19,600 berreskuratzeko bidean. 6 00:00:19,600 --> 00:00:22,700 Hargatik Hasteko. 7 00:00:22,700 --> 00:00:25,660 >> Berehala gara ikusten dugun ziur Oraindik dugu egiteko 8 00:00:25,660 --> 00:00:27,170 erabiliz behar bezala berreskuratu. 9 00:00:27,170 --> 00:00:31,490 Beraz, erabilera zerbait izan behar du bezalako dot barra berreskuratzeko. 10 00:00:31,490 --> 00:00:35,500 >> Orain ari gara espero zabalduko joan txartel dot fitxategia gordinak. 11 00:00:35,500 --> 00:00:39,740 Hemen ikusten dugu erabiltzen ari gara hori konstante azpimarra gordinak fitxategi-izena, 12 00:00:39,740 --> 00:00:44,200 horrek hemen hash dugu zehaztutako txartela dot gordinak bezala. 13 00:00:44,200 --> 00:00:45,030 Ados. 14 00:00:45,030 --> 00:00:48,210 >> Beraz, ziurtatu egin behar dugu ondo ireki delako bada 15 00:00:48,210 --> 00:00:51,150 ez, gero erabiltzaileari abisatu behar dugu. 16 00:00:51,150 --> 00:00:56,770 Baina egin duela suposatuz, orain gaude tamaina JPEG bufferra bat aldarrikatu joan 17 00:00:56,770 --> 00:00:58,170 fitxategia izen luzera. 18 00:00:58,170 --> 00:01:02,060 Beraz, hau da bufferraren izango duten ra sartu Sprintf goaz. 19 00:01:02,060 --> 00:01:04,360 >> Beraz, zer da JPEG fitxategia izen luzera? 20 00:01:04,360 --> 00:01:08,490 Hemendik gora, ikusten dugun hura dela hash zortzi gisa definitzen dira. 21 00:01:08,490 --> 00:01:10,670 Beraz, zergatik zortzi? 22 00:01:10,670 --> 00:01:15,150 Beno fitxategia jakin bat izendatuko dira zero zero zero antzeko zerbait. 23 00:01:15,150 --> 00:01:19,460 JPG eta ondoren alderantzizko barra bat zero behar dugu. 24 00:01:19,460 --> 00:01:22,720 Beraz, ahal duten buffer bat behar dugu Zortzi karaktere gordetzeko. 25 00:01:22,720 --> 00:01:25,190 Orain ari gara hori da kontagailu bat izan da joan segimendua joan 26 00:01:25,190 --> 00:01:27,780 zenbakia JPEGs aurkitu dugu. 27 00:01:27,780 --> 00:01:31,590 >> Eta, azkenik, ari gara behar going bat JPEG fitxategia hau da, hasieran nulua 28 00:01:31,590 --> 00:01:35,920 hau da, gaur egun izango da fitxategia ireki horretan ari gara idazten. 29 00:01:35,920 --> 00:01:37,540 Orain ari gara behar joan buffer gehigarri bat. 30 00:01:37,540 --> 00:01:41,350 Hau ez da gure sprintf berdina bufferrerako non buffer hau bat da 31 00:01:41,350 --> 00:01:45,020 datuetan dugula irakurtzen ari txartel sakabanatutako gordinak. 32 00:01:45,020 --> 00:01:48,900 >> Beraz bufferraren da izango ote da unsigned karakteretan, hau ahal duzun 33 00:01:48,900 --> 00:01:53,560 funtsean, besterik tratatzeko gurekin byte, eta hura da tamaina bloke tamaina izango da 34 00:01:53,560 --> 00:01:57,950 non, esan dugun bezala, Bloke tamaina 512 da. 35 00:01:57,950 --> 00:02:03,070 Beraz JPEGs guztia tratatzeko dezakezu 512 byte bloke gisa. 36 00:02:03,070 --> 00:02:05,890 >> Orain begizta goaz lerro osoa baino gehiago. 37 00:02:05,890 --> 00:02:12,980 F gure buffer sartu irakurri goaz a single byte bloke tamaina etatik aldiz 38 00:02:12,980 --> 00:02:14,710 txartela dot fitxategia gordinak. 39 00:02:14,710 --> 00:02:16,630 Orain zer ez irakurri itzultzeko f? 40 00:02:16,630 --> 00:02:20,050 Elementu kopurua itzultzen du dela behar bezala irakurri. 41 00:02:20,050 --> 00:02:27,310 512 byte irakurri, eta gero kudeatzen beraz bada hau ote zen bat ikusi nahi dugu 42 00:02:27,310 --> 00:02:29,700 JPEG edo idatz ezazu JPEG fitxategi batera. 43 00:02:29,700 --> 00:02:34,450 Eta ez badu 512 byte itzultzeko, orduan bai irudiak honako ha amaitu 44 00:02:34,450 --> 00:02:37,870 kasu y daudelarik dugu apurtzen begizta, edo han error nolabaiteko dira 45 00:02:37,870 --> 00:02:40,300 kasu horretan, gainera, ikusiko dugu hautsi y begizta, baina salatu nahi dugu 46 00:02:40,300 --> 00:02:41,990 zerbait gaizki joan da. 47 00:02:41,990 --> 00:02:42,290 >> Ados. 48 00:02:42,290 --> 00:02:47,630 Beraz suposatuz duten arrakastaz irakurri dugu 512 bytetan, lehenengo check nahi dugu 49 00:02:47,630 --> 00:02:53,070 osatzen duten byte horiek garela Irakurri in JPEG bat hasteko. 50 00:02:53,070 --> 00:02:56,430 Beraz, JPEG gure buffer goiburua bada. 51 00:02:56,430 --> 00:02:58,460 Orain zer egiten ari da JPEG goiburua? 52 00:02:58,460 --> 00:03:00,120 Dezagun begiratu. 53 00:03:00,120 --> 00:03:05,270 >> Hemendik gora, ikusiko dugu funtzio hori ez dela zezen bat itzuli, eta zezen hori - 54 00:03:05,270 --> 00:03:08,820 ondo hemen, zu ikusteko egiaztatzen badugu goiburua zero konstante honek berdin eta 55 00:03:08,820 --> 00:03:11,880 goiburu bat konstante honek berdin eta goiburu bi konstante hau berdin, 56 00:03:11,880 --> 00:03:15,640 goiburua hiru berdinen hau edo honen konstante non konstante horiek guztiak dira 57 00:03:15,640 --> 00:03:20,340 besterik hash hementxe definitu eta are zehatz-mehatz zer esan dizugu Zehaztutako 58 00:03:20,340 --> 00:03:22,700 JPEG bat hasten da. 59 00:03:22,700 --> 00:03:27,300 Eta beraz, funtzio hori besterik ez da joan egia itzuliko Buffer honek adierazten bada 60 00:03:27,300 --> 00:03:31,750 JPEG berri baten hasiera eta faltsua bestela. 61 00:03:31,750 --> 00:03:32,520 >> Ados. 62 00:03:32,520 --> 00:03:38,490 Eta horretarako, hala bada JPEG berri bat irudikatzeko, ondoren, lehen ikusi begiratu nahi badugu 63 00:03:38,490 --> 00:03:42,030 JPEG fitxategia ez da nulua berdina, eta kasu horretan itxi dugu. 64 00:03:42,030 --> 00:03:44,940 Eta beraz, zergatik ez berriro egiaztatu behar dugu ikustea ez da nulua bada? 65 00:03:44,940 --> 00:03:48,980 Beno oso lehen JPEG dugula aurkitu ez du dagoeneko badugu 66 00:03:48,980 --> 00:03:50,440 open JPEG fitxategi bat. 67 00:03:50,440 --> 00:03:55,580 Eta, beraz, hori itxi, gero saiatu badugu Ez ari gara zerbait nahiko eskubidea egiten. 68 00:03:55,580 --> 00:03:59,090 >> Baina ondorengo JPEG bakoitza ireki dugu, itxi nahi dugu 69 00:03:59,090 --> 00:04:00,710 Aurreko fitxategia. 70 00:04:00,710 --> 00:04:04,630 Beraz, gaur egun ari gara sprintf erabiltzeko dugun bezala joan non erabiltzen ari gara aurretik esan du 71 00:04:04,630 --> 00:04:06,280 buffer JPEG fitxategi izena. 72 00:04:06,280 --> 00:04:09,870 Eta ari gara JPEG fitxategia erabiltzeko joan izena eman formatua gure formatu gisa. 73 00:04:09,870 --> 00:04:12,030 Eta zer da hori? 74 00:04:12,030 --> 00:04:18,450 Hemendik gora, ikusten dugu ehuneko zero dela 3D.JPEG non zero hiru besterik 75 00:04:18,450 --> 00:04:22,089 dio hiru zenbaki osoko darabiltzaten dugu honetarako zeroz betea. 76 00:04:22,089 --> 00:04:27,470 Beraz, hau da zero zero nola lortuko dugu one.JPEG eta zero 10.JPEG eta abar. 77 00:04:27,470 --> 00:04:29,060 >> Sprintf erabili goaz. 78 00:04:29,060 --> 00:04:33,760 Eta hori txertatzen ari gara osokoa sartu katea numb JPEGs da 79 00:04:33,760 --> 00:04:36,380 berreskuratu, hau da, jatorriz zero. 80 00:04:36,380 --> 00:04:39,950 Beraz, lehen fitxategia ireki da joan zero zero zero dot JPEG izan. 81 00:04:39,950 --> 00:04:43,330 Eta gero ari gara beraz incrementing dugu Hurrengo fitxategia ireki dugu zero zero izango da 82 00:04:43,330 --> 00:04:46,830 dot JPEG bat eta Kontatzailea dugu Berriro so zero zero bi puntu besterik ez da izango 83 00:04:46,830 --> 00:04:49,100 JPEG eta abar. 84 00:04:49,100 --> 00:04:49,850 >> Ondo da. 85 00:04:49,850 --> 00:04:53,210 Beraz, orain JPEG fitxategia barrutik izendatzeko, izenaren dugu 86 00:04:53,210 --> 00:04:54,990 fitxategia nahi dugu. 87 00:04:54,990 --> 00:04:58,640 Daiteke f ireki dugu idazteko artxibo horretan. 88 00:04:58,640 --> 00:04:59,170 Ados. 89 00:04:59,170 --> 00:05:02,820 Eta, berriro ere, egin begiratu behar dugu ziurtatu fitxategia arrakastaz 90 00:05:02,820 --> 00:05:08,460 noiztik ireki ez, eta gero egin bada Akats batzuk zegoen. 91 00:05:08,460 --> 00:05:13,100 >> Beraz, gaur egun iraganeko dugu ahaztuak da hau JPEG zati bat. 92 00:05:13,100 --> 00:05:16,390 Eta hemen, ikusten ditugun goaz den JPEG idatzi. 93 00:05:16,390 --> 00:05:20,980 Baina lehen egiaztapen hau dio behar dugu JPEG fitxategia ez berdinak NULL bada. 94 00:05:20,980 --> 00:05:22,490 Zergatik behar dugu? 95 00:05:22,490 --> 00:05:28,020 Beno JPEG fitxategia berdinen nulua denean dugu Une JPEG irekia dute. 96 00:05:28,020 --> 00:05:31,870 >> Zer txartel dot gordinak hasten bada byte mordo bat duen 97 00:05:31,870 --> 00:05:33,510 ez irudikatzeko JPEG bat? 98 00:05:33,510 --> 00:05:36,240 Ondoren gaude nahi joan byte horiek baino gehiago saltatzeko. 99 00:05:36,240 --> 00:05:39,600 Ez badugu egiaztapen hau izan, orduan gaude arte ireki gabeko bat idazteko joan 100 00:05:39,600 --> 00:05:45,540 lehen 512 byte fitxategia txartela eta hori ez da ona. 101 00:05:45,540 --> 00:05:46,030 Ados. 102 00:05:46,030 --> 00:05:51,330 >> Beraz suposatuz fitxategia ireki bat dugu, eta gero fitxategi hori idazteko goaz du 103 00:05:51,330 --> 00:05:53,290 512 byte gure buffer dugu. 104 00:05:53,290 --> 00:05:57,390 Eta ari gara berriro ere egin egiaztapena ziurtatu du 512 byte arrakastaz 105 00:05:57,390 --> 00:06:01,140 zirelako idatzirik ez balira ongi idatzi, eta gero zerbait 106 00:06:01,140 --> 00:06:02,080 gaizki joan. 107 00:06:02,080 --> 00:06:06,540 Itxiko dugu gure artxiboak, inprimatu duten zerbait gaizki joan, eta itzulera. 108 00:06:06,540 --> 00:06:10,940 Suposatuz, dena behar bezala badoa, orduan itxiz begizta mantendu egingo dugu 109 00:06:10,940 --> 00:06:15,060 fitxategi zaharra, artxibo berriak irekitzea, idatziz fitxategi berriaren datuak, eta beraz 110 00:06:15,060 --> 00:06:20,990 on arte azkenik, f honetan irakurri zero itzultzen eta horrek bide 111 00:06:20,990 --> 00:06:23,280 fitxategia egiten den. 112 00:06:23,280 --> 00:06:28,490 >> Beraz, orain dela txartela irakurketa zehar, dugu ikusten ari gara f itxi egingo du 113 00:06:28,490 --> 00:06:33,250 irekita izan genuen, baina azken fitxategia egiaztatzen ari gara bada JPEG fitxategia 114 00:06:33,250 --> 00:06:34,900 nulua ez berdina du. 115 00:06:34,900 --> 00:06:39,520 Beno f estua zentzuzkoa delako Ari fitxategiak irekitzea dugu, itxiz ari gara 116 00:06:39,520 --> 00:06:43,870 aurreko fitxategia, baina oso azkena fitxategi hori ireki genuen inoiz erabat itxita. 117 00:06:43,870 --> 00:06:45,580 Beraz, hori da hori egiten. 118 00:06:45,580 --> 00:06:47,720 >> Baina zergatik nahi null arakatuko behar dugu? 119 00:06:47,720 --> 00:06:53,130 Beno txartela dot gordinak zer bada ez JPEG bakar baten barruan dute? 120 00:06:53,130 --> 00:06:56,640 Kasu horretan, hau izango dugu fitxategi batean inoiz ireki. 121 00:06:56,640 --> 00:07:00,230 Eta inoiz ez dugu ireki fitxategia bat bada, hori behar dugu Ez saiatu fitxategi hori ixteko. 122 00:07:00,230 --> 00:07:03,000 Beraz, hori da egiaztapen hau egiten ari da. 123 00:07:03,000 --> 00:07:07,880 >> Orain, hemen, lehenago esan dudan bezala, ezin izan dugu dute hautsi daudelarik y begizta bai bada 124 00:07:07,880 --> 00:07:13,520 txartela amaitu da edo badaude Akats batzuk txartela irakurtzean. 125 00:07:13,520 --> 00:07:16,680 Beraz, hau da, ez zen den ikusteko Errore bat txartela irakurtzean, in 126 00:07:16,680 --> 00:07:19,400 kasu horretan, ez dago esan dugu error irakurketa bat izan zen. 127 00:07:19,400 --> 00:07:22,130 Ez dugu erabiltzaileari pentsatu nahi guztia joan egin da. 128 00:07:22,130 --> 00:07:24,750 Eta itzuli egingo dugu inork akats. 129 00:07:24,750 --> 00:07:29,580 >> Azkenik, f dugu gure fitxategia gordinak ixteko, Gure txartela dot gordinak, hori adierazteko 130 00:07:29,580 --> 00:07:34,070 dena ongi atera eta bueltan zero eta hori da. 131 00:07:34,070 --> 00:07:36,130 >> Nire izena Rob da, eta hau izan zen berreskuratu. 132 00:07:36,130 --> 00:07:42,102 >> [Musika jotzen]