[Powered by Google Translate] [Walkthrough - Set Problem 4]
[Zamyla Chan - Università ta 'Harvard]
[Dan huwa CS50. - CS50.TV]
Kull dritt. Hello, kulħadd, u jilqgħu għall Walkthrough 4.
>> Illum pset tagħna huwa forensika.
Forensika huwa pset verament gost li jinvolvi li jittrattaw ma 'fajls Bitmap
biex jiskopru min ikkommetta reat.
Imbagħad aħna qed tmur biex resize xi fajls Bitmap,
allura aħna wkoll qed tmur biex jittrattaw ma 'parti verament gost imsejħa Tirkupra,
li aħna qed bażikament mogħtija kard ta 'memorja
li fih xi ħadd aċċidentalment mħassra kollha tal-fajls tagħhom,
u aħna qed tintalab biex jirkupraw dawk il-fajls.
>> Iżda l-ewwel, qabel ma nikbru fil-pset, I really biss jixtiequ jifirħu kulħadd.
Aħna qed madwar fil-punt tan-nofs ta 'dan il-kors.
Quiz 0 hija warajna, u aħna qed fil pset4, hekk essenzjalment, aħna qed f'nofsu.
Imxejna ħafna 'l quddiem jekk inti tħares lura lejn psets tiegħek, pset0 u pset1,
hekk nifraħ lilek innifsek dwar dan,
u aħna qed tmur biex jsibu rwieħhom xi għalf verament gost.
>> Allura toolbox tagħna għal dan pset, għal darb'oħra, minflok running sudo yum-y aġġornament,
aħna kapaċi li jiddekorri biss update50 jekk int fuq verżjoni 17.3 u aktar ta 'l-appliance.
Sabiex ikun żgur li run update50 - huwa aktar faċli ħafna, xi karattri ftit inqas -
tagħmel żgur li int fil-aħħar verżjoni ta 'l-appliance.
Speċjalment huwa importanti li update50 meta aħna jibdew jużaw CS50 Iċċekkja.
Sabiex tagħmel ċert li inti tagħmel dan.
>> Għall kollha mit-taqsimiet ta 'dan pset,
aħna qed tmur biex tkun jittrattaw inputs u l-outputs fajl, fajl I / O.
Aħna ser jkunu għaddejjin fuq lott ta 'programmi li jittrattaw ma' arrays
tipponta lejn fajls u affarijiet bħal dik,
hekk aħna tixtieq li tagħmel ċert li aħna qed verament familjari u komdu
jittrattaw mal-mod kif l-input u output fis-fajls.
>> Fl-kodiċi ta 'distribuzzjoni għal dan pset il-fajl huwa msejjaħ copy.c,
u dan huwa dak li aħna qed tmur biex issib se tkun verament utli għalina
għaliex aħna qed tmur biex jispiċċaw fil-fatt jikkopja l-fajl copy.c
u biss jbiddlu dan ftit li tkun tista 'tikseb l-ewwel 2 partijiet ta' l-sett problema.
>> U hekk imbagħad kif semmejt qabel, aħna qed jittrattaw ma bitmaps kif ukoll JPEGs.
Allura verament jifhmu l-istruttura ta 'kif dawn il-fajls huma organizzati,
kif nistgħu verament jittraduċu l-0s u 1s fis structs
u affarijiet li nistgħu ngħidu jifhmu u jinterpretaw u jeditjaw,
li se tkun verament importanti,
hekk nidħlu JPEG u fajls Bitmap u jifhmu l-istruttura ta 'dawn.
>> Pset4, bħas-soltu, jibda bil-taqsima ta 'mistoqsijiet.
Dawk se tittratta mal-fajl I / O u inti tikseb mdorri dan.
Imbagħad parti 1 huwa whodunit, fejn int tingħata fajl Bitmap
li tidher it-tip ta 'prodotti simili tikek ħomor kollha.
U allura bażikament dak li aħna qed tmur biex tagħmel huwa li tieħu dan il-fajl u biss tbiddilha ftit
fis-verżjoni li nistgħu taqra.
Essenzjalment, ladarba aħna finitura, aħna ser ikollhom l-istess fajl,
ħlief aħna ser tkun tista 'tara l-messaġġ moħbija moħbija minn dawk kollha tikek ħomor.
Imbagħad Resize huwa programm li, minħabba fajl
u mbagħad jingħata l-isem tal-fajl li outputs u mbagħad mogħtija numru kif ukoll,
fil-fatt se resize li Bitmap minn dak il-valur sħiħ.
Imbagħad fl-aħħar, aħna għandna l-pset jirkupraw.
Aħna jingħataw karta tal-memorja u mbagħad ikollhom jirkupraw kollha ta 'l-ritratti
li ġew aċċidentalment mħassra,
iżda, kif aħna ser jitgħallmu, mhux attwalment mħassra u jitneħħew mill-fajl;
aħna biss tip ta 'mitluf meta kienu fil-fajl, iżda aħna qed tmur biex tirkupra dak.
>> Great. Allura jmorru fil-fajl I / O speċifikament, dawn huma lista sħiħa ta 'funzjonijiet li inti ser tkun qed tuża.
You ħadthom diġà raw xi ftit l-baŜi ta fopen, fread, u fwrite,
imma aħna qed tmur biex tħares aktar fil xi fajl I / O funzjonijiet bħall fputc,
fejn inti biss jiktbu karattru wieħed fi żmien,
li fseek, fejn inti tip ta 'timxi l-indikatur tal-pożizzjoni fajl quddiem u lura,
u mbagħad xi oħrajn. Iżda aħna ser imorru fis li ftit aktar tard matul il pset.
>> Allura l-ewwel, biss li tikseb fis fajl I / O qabel immorru fil-pset,
li jiftaħ fajl, per eżempju, dak li għandek tagħmel huwa attwalment stabbilit pointer għal dan il-fajl.
Allura aħna għandna pointer * FAJL.
F'dan il-każ, jien ssejjaħ magħha fil pointer minħabba li għaddej biex tkun infile tiegħi.
U hekk jien ser tuża l-fopen funzjoni u allura l-isem tal-fajl
u allura l-mod li bih jien ser ikunu jittrattaw mal-fajl.
Allura hemm "r" f'dan il-każ għall-qari, "w" għall-kitba, u mbagħad "a" għal jpoġġu.
Per eżempju, meta inti qed jittrattaw ma 'infile
u kull ma tkun trid tagħmel hu li jaqra l-bits u bytes maħżuna hemmhekk,
allura int probabilment tmur jridu jużaw "r" bħala modalità tiegħek.
Meta inti tixtieq li attwalment tikteb, it-tip ta 'jagħmel fajl ġdid,
allura dak li aħna qed tmur biex tagħmel hu li aħna qed tmur biex tiftaħ il-fajl ġdid
u jużaw il-"w" mod għall-kitba.
>> Mela allura meta int fil-fatt taqra fil-fajls, l-istruttura hija kif ġej.
L-ewwel għandek tinkludi l-pointer għall-Struct li se jkun fiha l-bytes li int qari.
Allura li għaddej biex tkun il-post tmiem tal-bytes li int qari.
Int imbagħad ser tindika d-daqs, bħal bażikament kemm bytes
programm tiegħek għandu jinqara għall-fajl, id-daqs bażikament element wieħed huwa,
u allura int ser jispeċifika kemm elementi inti tixtieq li taqra.
U mbagħad finalment, inti għandek tkun taf fejn inti qed taqra minn,
hekk li għaddej biex tkun pointer fil tiegħek.
I color-coded dawn minħabba fread huwa wkoll simili ħafna għall fwrite,
ħlief inti tixtieq li tagħmel ċert li inti tuża l-ordni dritt,
kun żgur li int fil-fatt bil-miktub jew qari mill-fajl lemin.
>> Mela allura bħal qabel, jekk ikollna l-daqs tal-element kif ukoll in-numru ta 'elementi,
allura aħna tista 'tilgħab madwar hawn ftit.
Say I jkollhom Struct DOG u għalhekk mbagħad I trid taqra żewġ klieb fi żmien.
What I tista 'tagħmel huwa jgħid id-daqs ta' element wieħed se jkun id-daqs ta 'waħda DOG
u jien ser fil-fatt taqra tnejn minnhom.
Alternattivament, dak I tista 'tagħmel huwa ngħid jien biss ser jinqara element wieħed
u li element wieħed se jkun id-daqs ta 'żewġ klieb.
Allura dak analogu kif inti tista tip ta 'logħob madwar daqs u numru
jiddependi fuq x'hemm aktar intuwittivi għalik.
>> Kull dritt. Allura issa nikbru għall-fajls bil-miktub.
Meta inti tixtieq li jiktbu fajl, l-ewwel argument huwa attwalment fejn inti qed taqra minn.
Allura dak bażikament l-informazzjoni li inti ser jikteb fil-fajl,
li huwa l-pointer fl-aħħar.
Allura meta inti qed jittrattaw ma 'l-pset, aċċerta ruħek li ma jsibux konfuż.
Forsi l-ġenb mill-ġenb definizzjonijiet.
Tista 'pull-definizzjonijiet fil-manwal billi jittajpja bniedem u mbagħad fwrite, per eżempju,
fit-terminal, jew inti tista 'tirreferi lura għal dan slide
u kun żgur li inti qed tuża l-waħda id-dritt.
Għalhekk għal darb'oħra, għall fwrite, meta jkollok fajl li inti tixtieq li tikteb fi,
li għaddej biex tkun l-aħħar argument u li għaddej biex tkun pointer għal dan il-fajl.
Mela allura dak l-mod kif nittrattaw miktub forsi bytes fl-istess waqt,
imma jgħidu inti tixtieq li biss jiktbu wieħed biss karattru wieħed.
Kif Ser naraw aktar tard f'dan l-eżempju, fil-bitmaps aħna ser ikollhom biex jużaw dan.
Li meta nistgħu nużaw fputc, essenzjalment biss it-tqegħid karattru wieħed fi żmien, CHR,
fil-pointer fajl, u dan huwa tagħna out pointer hemmhekk.
Allura mbagħad meta aħna nfittxu jew ikteb fil-fajl,
il-fajl huwa iżżomm rekord ta 'fejn ninsabu.
Allura huwa tip ta 'cursor, l-indikatur tal-pożizzjoni fajl.
U hekk kull meta aħna tikteb jew taqra darb'oħra fis-fajl,
l-fajl fil-fatt jiftakar fejn hi,
u għalhekk tkompli minn fejn il-cursor huwa.
Dan jista 'jkun ta' benefiċċju meta inti tixtieq li, ngħidu aħna, moqri ċertu ammont biex jagħmel xi ħaġa
u mbagħad jaqra fl-ammont li ġej,
imma xi kultant aħna tista 'tixtieq li tmur lura jew tabilħaqq tibda minn valur ta' referenza partikolari.
Mela allura l-funzjoni fseek, dak li tagħmel huwa jippermetti li jiċċaqalqu il-cursor fil-fajl ċerti
ċertu numru ta 'bytes.
U allura dak li rridu nagħmlu huwa jispeċifika fejn il-valur ta 'referenza huwa.
Allura kemm huwa jimxi 'l quddiem jew lura minn fejn il-cursor huwa attwalment,
jew nistgħu jispeċifikaw li din għandha biss jimxu fuq il-bidu tal-fajl
jew mill-aħħar tal-fajl.
U għalhekk inti tista 'tgħaddi fil-valuri negattivi jew pożittivi għal ammont,
u li se tip ta 'jiċċaqalqu il-cursor jew quddiem jew lura.
>> Qabel ma aħna nġibu fis-psets oħra, xi mistoqsijiet dwar il-fajl I / O?
Okay. Kif aħna jsibu rwieħhom aktar eżempji, li tħossok liberu li tieqaf lili għall-mistoqsijiet.
>> Għalhekk fl whodunit, int mogħtija fajl Bitmap simili għal dan wieħed aħmar fuq il-pjastra,
u jidher qisu dan - mazz ta 'tikek ħomor - u inti ma verament jafu x'hemm miktub.
Jekk inti squint, inti tista 'tkun kapaċi li tara kulur blu żgħir ġewwa l-nofs.
Essenzjalment, dan huwa fejn it-test huwa maħżun.
Kien hemm qtil li ġara, u għandna bżonn biex issir taf li ma kien.
Sabiex tagħmel dan, għandna bżonn li tip ta 'jikkonvertu din id-dehra fil-format li tinqara.
Jekk inti guys qatt jiltaqgħu dan, xi kultant ikun hemm kits ftit
fejn inti jkollha lenti ma 'film aħmar. Kulħadd? Yeah.
Allura inti tkun xi ħaġa b'idejhom bħal din, inti għandek lenti
mal-film aħmar fuqha, inti poġġih fuq l-immaġni,
u inti tkun kapaċi li tara l-messaġġ moħbija fihom.
Aħna ma jkollhom ħġieġ ingrandiment ma 'film aħmar, hekk minflok aħna qed tmur biex joħolqu tip ta' tagħna stess
f'dan pset.
U għalhekk l-utent se whodunit input, allura l-clue,. BMP,
b'tali mod li l-infile, dak l-messaġġ dot aħmar,
u allura dawn qed tgħid verdict.bmp se tkun outfile tagħna.
Allura li għaddej biex toħloq immaġni Bitmap ġdid simili għal clue 1
ħlief fil-format li tinqara fejn nistgħu naraw il-messaġġ moħbija.
>> Minħabba li aħna qed tmur biex tkun jittrattaw editjar u timmanipula bitmaps ta 'xi tip,
aħna qed tmur biex tip ta 'adsa fis fl-istruttura ta' dawn il-fajls Bitmap.
Aħna marru fuq dawn ftit ftit fil-lecture, imma ejja nħarsu ġo fihom ftit aktar.
Bitmaps huma essenzjalment biss arranġament ta 'bytes
fejn konna speċifikat liema bytes tfisser dak.
Allura hawnhekk huwa tip simili ta 'mappa ta' l-immaġini Bitmap
qal li jibda ma 'xi fajls header, tibda ma' xi informazzjoni fil hemmhekk.
Inti tara li madwar in-numru byte 14-daqs huwa indikat mill-immaġini Bitmap,
u tkompli fuq.
Imma mbagħad dak li aħna qed verament interessati fil hawn qed jibda madwar numru byte 54.
Għandna dawn triples RGB.
Dak li għaddej biex tagħmel hu jkun fiha l-pixels attwali, il-valuri tal-kulur.
Kollox hawn fuq li fil-header hija xi informazzjoni
jikkorrispondi għad-daqs tal-immaġini, il-wisa 'l-immaġini, u l-għoli.
Meta immorru fis ikkuttunar aktar tard, aħna ser tara għaliex id-daqs ta 'l-immaġini
jista 'jkun differenti mill-wisa' jew l-għoli.
Mela allura li jirrappreżentaw dawn - dawn immaġini Bitmap huma sekwenzi ta 'bytes -
dak li stajna nagħmlu hu jgħid okay, jien ser jiftakar li fil-indiċi 14,
li meta d-daqs huwa, per eżempju, iżda minflok dak li aħna qed tmur biex tagħmel biex tagħmel dan aktar faċli
huwa jirrappreżentaw dan fil Struct.
U hekk għandna żewġ structs ssir għalina, a BITMAPFILEHEADER
u BITMAPINFOHEADER,
u hekk kull meta naqraw fl għal dan il-fajl, fil-kontumaċja huwa se jkunu għaddejjin sabiex,
u għalhekk sabiex huwa wkoll ser timla f 'varjabbli bħall biWidth u biSize.
U mbagħad finalment, kull pixel huwa rappreżentat minn tlett bytes.
L-ewwel waħda hija l-ammont ta 'ikħal fil-pixel, it-tieni huwa l-ammont ta' aħdar,
u finalment, l-ammont ta 'aħmar, fejn 0 huwa essenzjalment l-ebda aħdar blu jew le jew l-ebda ħamra
u allura ff huwa l-valur massimu.
Dawn huma valuri hexadeċimali.
Mela allura jekk ikollna ff0000, allura li tikkorrispondi għall-ammont massimu ta 'blue
u allura l-ebda aħdar u l-ebda aħmar, hekk allura li tagħtina pixel blu.
Imbagħad jekk ikollna kollha ff s madwar il-bord, allura dan ifisser li għandna pixel abjad.
Dan huwa tip ta 'oppost għal tipikament meta ngħidu RGB. Huwa fil-fatt tmur BGR.
>> Allura jekk aħna verament tħares lejn eżempju ta 'immaġni Bitmap - let me pull wieħed up here.
Huwa żgħir ftit.
Jien zooming fil-, u nistgħu naraw huwa pixelated. Jidher qisu blokki ta 'kulur.
Inti għandek blokki abjad u mbagħad blokki aħmar.
Jekk inti play fil Paint Microsoft, per eżempju, inti tista 'tagħmel xi ħaġa bħal dik
billi bażikament biss pittura kwadri ċerti f'ordni speċifika.
Mela allura dak dan ifisser li fil-Bitmap hija kif ġej.
Hawnhekk għandna pixels abjad ewwel, li kollha 6 huma s f, u mbagħad għandna pixels ħomor,
indikat mill 0000ff.
U għalhekk l-sekwenza ta 'bytes li għandna tindika kif l-immaġini Bitmap huwa ser tfittex.
Allura dak I ghamilt hawn huwa biss jinkiteb dawk kollha bytes u mbagħad kulur fl-aħmar
sabiex inti tista 'tip ta' tara, jekk inti squint ftit, kif dan it-tip ta jindika wiċċ smiley.
>> Il-mod li Bitmap immaġini xogħol huwa I envision bażikament bħala grilja.
U għalhekk fil-kontumaċja, kull ringiela tal-grilja għandu jkun multiplu ta '4 bytes.
Jekk inħarsu lejn immaġini Bitmap, int timla kull valur.
Per eżempju, inti jista 'jkollok aħmar hawn, aħdar hawn, blu hawn,
iżda inti għandek tagħmel ċert li l-immaġini huwa mimli ma 'multiplu ta' 4 bytes.
Mela jekk irrid image tiegħi li jkun ta 'tliet blokki wiesgħa, allura nixtieq għandek tpoġġi valur vojt
fl-aħħar wieħed li jagħmel bħala multiplu ta '4.
Allura mbagħad Inżid xi ħaġa li aħna qed titlob padding.
Jien biss se jindikaw li hemm ma 'x.
Issa ngħidu li rridu immaġni li hija ta '7 pixels twil, per eżempju.
We have 1, 2, 3, 4, 5, 6, 7,
u kollha ta 'li huwa mimli bil-kulur.
Il-mod li l-immaġini Bitmap xogħol hija li għandna bżonn ta '8.
Dritt issa għandna 1, 2, 3, 4, 5, 6, 7.
Għandna bżonn 8 spazji għall-immaġini Bitmap biex taqra b'mod korrett.
Mela allura dak li għandna tagħmel hu li żżid fil biss daqsxejn ta 'padding
biex tiżgura li kollha tal-wisgħat huma uniformi
u li kollha tal-wisgħat huma multiplu ta '4.
U hekk jien indikat qabel, ikkuttunar bħala x jew squiggly linja,
iżda fil-immaġini Bitmap attwali l-ikkuttunar hija indikata permezz ta '0 hexadeċimali.
Allura li tkun karattru wieħed, 0.
Liema jista 'jidħol fil handy hija l-kmand xxd.
Dak li dan huwa fil-fatt turi li inti, simili simili għal dak li għamilt qabel ma 'l-smiley
meta I attwalment stampata liema kull kulur għandha tkun għall-pixel
u mbagħad kulur kodifikati li, meta inti tmexxi xxd bil-kmandijiet li ġejjin,
imbagħad fil-fatt se jistampa liema l-kuluri huma għal dawk pixels.
Dak li għandek tagħmel huwa fuq here I tindika, bħall-s-54
jgħid li jien ser tibda fil-byte 54
għaliex qabel li, ftakar jekk inħarsu lura lejn il-mappa ta 'l-bitmaps,
li l-informazzjoni kollha header u affarijiet bħal dik.
Imma dak li aħna verament jimpurtak huwa l-pixels effettivi li jindikaw l-kulur.
Allura billi żżid f'dak bandiera,-i 54, allura aħna qed kapaċi li tara l-valuri tal-kulur.
U ma joqogħdu jinkwetaw dwar l-bnadar kkumplikata u affarijiet bħal dik.
Fil-spec sett problema, inti ser ikollok direzzjonijiet dwar kif tuża xxd biex jesponi l-pixels.
Mela jekk tara hawn, huwa tip ta 'qisu kaxxa ħadra, dan il-ħaġa żgħira.
Stajt kulur kodifikati l 00ff00 bħala bażikament tgħid l-ebda blu, lott ta 'aħdar, u l-ebda aħmar.
Allura li jikkorrispondi għal aħdar.
Kif qed taraw hawn, naraw rettangolu aħdar.
Dan ir-rettangolu aħdar huwa biss 3 pixels wiesgħa, hekk allura dak li għandna nagħmlu
biex tiżgura li l-immaġini huwa multiplu ta '4 wiesgħa hu li żżid fl-ikkuttunar żejda.
U hekk allura li l-mod kif inti tara dawn 0s hawn.
Dan fil-fatt se tkun ir-riżultat ta 'pset Resize tiegħek,
essenzjalment tieħu l-Bitmap żgħar u mbagħad mkabbar sa l-4.
U hekk dak li naraw hija li fil-fatt din id-dehra huwa ta '12 pixels wiesgħa, iżda 12 huwa multiplu ta' 4,
u hekk aħna fil-fatt ma tara l-ebda 0s fl-aħħar għaliex aħna ma bżonn li żżid xi
għaliex dan huwa kompletament padded. Huwa ma jkollu spazju aktar.
>> Okay. Kwalunkwe mistoqsijiet dwar ikkuttunar?
Okay. Kessaħ.
>> Kif semmejt qabel, il bitmaps huma biss sekwenza ta 'bytes.
U hekk dak li għandna huwa minflok jeħtieġu li jżommu rekord ta 'eżattament liema numru ta' byte
tikkorrispondi għal element speċifiku, aħna fil-fatt ħolqu Struct biex jirrappreżenta dak.
Allura dak li għandna huwa Struct RGBTRIPLE.
Kull meta għandek każ ta 'triple RGB,
għaliex dan huwa tip jiddefinixxi Struct, allura inti tista 'aċċess l-varjabbli rgbtBlue,
bl-istess mod il-varjabbli Green u Red, li se jindikaw kemm blu,, aħdar, u aħmar
rispettivament, għandek.
>> Allura jekk aħna għandna l-sett varjabbli blu għal 0, is-sett aħdar li ff,
li huwa l-valur massimu inti jista 'jkollhom, u allura l-varjabbli aħmar ssettjat għal 0,
allura dak color kieku dan triple RGB partikolari jirrappreżenta? >> [Student] Green.
Green. Eżattament.
Huwa ser tkun utli li tkun taf li kull meta għandek każ ta 'triple RGB,
inti tista 'attwalment aċċess għall-ammont ta' kulur - blu, aħdar, u aħmar - separatament.
>> Issa li konna tkellimna dwar l-istruttura ta 'dan, ejja tagħti ħarsa lejn il-fajl BMP.
Dawn huma structs magħmula għalik.
Hawnhekk għandna Struct BITMAPFILEHEADER.
Ta 'interess huwa d-daqs.
Aktar tard, aħna għandna l-header info, li għandha ftit affarijiet aktar li huma interessanti għalina,
jiġifieri d-daqs, il-wisa ', u l-għoli.
Kif aħna ser jmorru fil aktar tard, meta inti taqra fil-fajl,
awtomatikament jaqra fl għaliex konna tistabbilixxi l-ordni li tkun l-istess.
Allura l-biSize se jkun fiha l-bytes dritt li jikkorrispondu għad-daqs attwali tal-immaġini.
U allura hawnhekk, fl-aħħar nett, kif konna tkellimna dwar, aħna għandna l-Struct typedef RGBTRIPLE.
Għandna rgbtBlue, Green, u Red assoċjati magħha.
>> Great. Okay.
Issa li aħna nifhmu bitmaps ftit, jifhmu li aħna għandna header tal-fajl
u header info assoċjati magħha u mbagħad wara dan, aħna għandna l-għalf interessanti
mill-kuluri, u dawk il-kuluri huma rrappreżentati minn structs RGBTRIPLE,
u dawk, imbagħad, għandhom tliet valuri assoċjati mal-blu, l-aħdar, u l-aħmar.
>> Allura issa, nistgħu tip ta 'jaħsbu dwar Jirkupra daqsxejn.
Jiddispjacini. Aħseb dwar whodunit.
Meta aħna għandna fajl clue tagħna, allura dak li rridu nagħmlu huwa li jinqara lilha pixel mill pixel
u mbagħad b'xi mod jibdlu dawk pixels sabiex inkunu nistgħu output huwa fi format li tinqara.
U għalhekk li l-output huwa, aħna qed tmur biex jiktbu pixel mill pixel fil-fajl verdict.bmp.
Dak it-tip ta 'lott li jagħmlu. Niftakru li.
Allura dak li aħna ghamilt hija li aħna stajt attwalment sakemm illi inti ma copy.c.
X'inhu copy.c ma huwa biss jagħmel kopja eżatta ta 'fajl Bitmap partikolari u mbagħad outputs tiegħu.
Allura dan diġà jiftaħ il-fajl għalik, jaqra fil pixel mill pixel,
u mbagħad jikteb fil f'fajl output.
>> Ejja tagħti ħarsa lejn dak.
Dan huwa żgurat użu xieraq,
jkollna l-filenames hawn.
X'inhu dan ma huwa jistabbilixxi l-input fajl li jkun dak li konna għadda fil fil-infile hawn,
li huwa t-tieni kmand tal-linja tagħna argument.
Kontrolli li tagħmel ċert li nistgħu tiftaħ il-fajl.
Kontrolli biex tiżgura nistgħu nagħmlu outfile ġdid hawn.
Imbagħad dak li dan ma hawn, hija biss bażikament jibda qari fil-fajl Bitmap mill-bidu.
Il-bidu, kif nafu, fiha l-BITMAPFILEHEADER,
u għalhekk dawk sekwenzi ta 'bits se direttament jimlew il-BITMAPFILEHEADER.
Allura dak li għandna hawnhekk huwa qal li bf BITMAPFILEHEADER -
li l-varjabbli ġdida tagħna ta 'BITMAPFILEHEADER tip -
aħna qed tmur biex jitqiegħdu ġewwa bf dak li naqraw minn fl pointer, li huwa infile tagħna.
Kemm naqraw?
Naqraw fil kemm bytes għandna bżonn li jkun fiha l-BITMAPFILEHEADER kollu.
Bl-istess mod, dan huwa dak li nagħmlu għall-header info.
Allura aħna qed jinżlu mal-fajl tagħna fil-infile,
u aħna qed qari ta 'dawn bits u bytes, u aħna qed pagamnenti lilhom direttament fl-
f'dawn każijiet tal-varjabbli li aħna qed jagħmlu.
Hawnhekk aħna qed biss tagħmel ċert li l-Bitmap hija Bitmap.
>> Issa għandna outfile, id-dritt?
Hekk kif inhi meta aħna joħolqu dan, huwa essenzjalment vojta.
Allura aħna għandna biex bażikament joħolqu Bitmap ġdida mill-bidu.
Dak li nagħmlu huwa irridu niżguraw li kopja fil-header tal-fajl
u l-header info bħall-infile jkun.
Dak li nagħmlu huwa aħna tikteb - u ftakar li bf huwa l-varjabbli
ta BITMAPFILEHEADER tip, sabiex dak li nagħmlu huwa li aħna biss użu li l-kontenut
li tikteb fil-outfile.
Hawnhekk, ftakar tkellimna dwar ikkuttunar,
kemm huwa importanti li jiġi żgurat li l-ammont ta 'pixels li għandna huwa multiplu ta' 4.
Din hija formula pjuttost utli biex jikkalkulaw kemm ikkuttunar għandek
minħabba l-wisa 'tal-fajl tiegħek.
Irrid inti guys li wieħed jiftakar li fil copy.c għandna formula għall-kalkolu ikkuttunar.
Okay? Allura kulħadd ftakar li. Great.
Mela allura dak copy.c ma huwa d-dieħla ttenni fuq kollha ta 'l-scanlines.
Hija tmur permezz-ringieli ewwel u mbagħad stores kull triplu li jgħid
u mbagħad jikteb hija fil-outfile.
Mela allura hawnhekk aħna qed qari wieħed biss RGB triplu fi żmien
u mbagħad tqegħid li triple-istess fil-outfile.
Il-parti delikata huwa li l-ikkuttunar mhijiex triplu RGB,
u għalhekk ma nistgħux aqra biss dak l-ammont ikkuttunar ta 'triples RGB.
Dak li għandek tagħmel huwa fil-fatt biss jiċċaqalqu indikatur tagħna pożizzjoni fajl, jimxu cursor tagħna,
għall tip ta 'skip fuq l-ikkuttunar sabiex inkunu qed fil-filliera li jmiss.
U allura dak li dan ma huwa kopja jurik kif inti tista 'tixtieq iżżid l-ikkuttunar.
Allura aħna ve kkalkulat kemm ikkuttunar għandna bżonn,
b'tali mod li jfisser li għandna bżonn numru ikkuttunar ta 0s.
X'inhu dan ma huwa għal loop li tpoġġi numru ikkuttunar ta 0s fis outfile tagħna.
U mbagħad finalment, inti qrib kemm fajls. Inti tagħlaq il infile kif ukoll il-outfile.
>> Allura li kif copy.c xogħlijiet,
u li għaddej biex tkun pjuttost utli.
Minflok biss fil-fatt direttament ikkupjar u pasta
jew biss tħares lejn din u t-tajping fi kwalunkwe inti tixtieq,
inti tista 'biss tixtieq li teżegwixxi dan il-kmand fil-terminal,
cp copy.c whodunit.c, li se toħloq fajl ġdid, whodunit.c,
li fih l-istess kontenut eżatt ma kopja bħala.
Mela allura dak li nistgħu nagħmlu huwa juża dik bħala qafas li fuqhom biex jibnu u jeditjaw
għall-fajl whodunit tagħna.
>> Dawn huma tagħna għall-dos li tagħmel għall whodunit, imma dak copy.c ma
huwa attwalment jieħu ħsieb ta 'ħafna minnhom għalina.
Allura kollha għandna bżonn tagħmel li jmiss huwa jibdlu l-pixels kif meħtieġ
li fil-fatt jagħmel il-fajl tinqara.
Ftakar li għal pixel triplu partikolari, hekk għal varjabbli partikolari ta 'RGBTRIPLE tip,
inti tista 'aċċess l-blu, il-valuri aħdar, u aħmar.
Li għaddej biex jidħol fil handy għaliex jekk inti tista 'aċċess għalihom,
dan ifisser li inti tista 'wkoll verifikati magħhom,
u dan ifisser li inti tista 'wkoll bidla minnhom.
>> Allura meta aħna marru lura għall-eżempju tal-ħġieġ tagħna aħmar ingrandiment,
bażikament, li kien qed jaġixxi bħala tip ta 'filtru għalina.
Allura dak li rridu nagħmlu huwa li rridu biex jiffiltraw kollha ta 'l triples li huma ġejjin pulzieri
Hemm ħafna modi differenti biex jagħmlu dan.
Bażikament, inti jista 'jkollhom kwalunkwe tip ta' filtru li trid.
Forsi inti tixtieq li tibdel l-pixels ħomor
jew forsi trid tibdel pixel kulur differenti għal kulur differenti.
Dak sa inti.
Ftakar li inti tista 'tivverifika liema kulur il-pixel huwa
u allura inti tista 'wkoll bidla kif inti qed tmur permezz.
>> Okay. Allura dak whodunit.
Ladarba inti tmexxi whodunit, inti ser tkun taf li l-ħati tar-reat kienet.
>> Issa aħna qed tmur biex tmur Resize.
Aħna ser xorta jkunu jittrattaw bitmaps.
Dak li aħna qed tmur biex tagħmel hu li aħna qed tmur biex ikollhom Bitmap input
u allura aħna qed tmur biex jgħaddi f'għadd u mbagħad jiksbu Bitmap outfile
fejn dan huwa bażikament infile tagħna jitkabbru mill n.
Say fajl tiegħi kien biss wieħed pixel kbar.
Imbagħad jekk n tiegħi kienet 3, scaling bi 3, allura nixtieq nirrepeti li pixel n numru ta 'drabi,
hekk 3 darbiet, u allura wkoll iskala l-isfel 3 darbiet ukoll.
Allura inti tara li jien skalar li vertikalment kif ukoll orizzontalment.
>> U allura hawnhekk eżempju.
Jekk għandek n = 2, tara li l-pixel blu ewwel hemm ripetuta darbtejn
orizzontalment kif sew bħala żewġ darbiet vertikalment.
U mbagħad li jkompli fuq, u hekk ikollok skalar dirett ta 'immaġini oriġinali tiegħek bi tnejn.
>> Mela allura jekk konna għall-dettall l-pseudocode għal dan, irridu li tiftaħ il-fajl.
U mbagħad jafu li jekk immorru lura hawn,
naraw li l-wisa 'għall-outfile se tkun differenti mill-wisa' għall-infile.
X'ifisser dan?
Dan ifisser li l-informazzjoni header tagħna huwa se jibdlu.
U għalhekk dak li aħna ser trid tagħmel hu taġġorna l-info header,
li jafu li meta naqraw fil-fajls jekk int joperaw fuq il-qafas copy.c,
diġà għandna varjabbli li jindika dak il-qies huwa u affarijiet bħal dik.
Allura ladarba inti għandek dan, dak li inti tista 'tixtieq li tagħmel hu li jibdlu dawk il-varjabbli partikolari.
Ftakar, jekk għandek Struct, kif inti aċċess għall-fatturi varjabbli fi ħdan dik.
Tuża l-operatur dot, id-dritt?
Allura mbagħad jużaw dan, inti taf li ghandek bzonn biex jibdlu l-info header.
Allura hawnhekk biss lista ta 'l-elementi konkreti li ser ikunu qed jinbidlu fil-fajl tiegħek.
Il-daqs tal-fajl se jinbidlu, l-immaġni, kif ukoll il-wisa 'u l-għoli.
Mela allura jmorru lura għall-mappa ta 'l-bitmaps,
tħares lejn jekk huwa l-header tal-fajl jew il-header info li fiha dik l-informazzjoni
u mbagħad bidla kif meħtieġ.
Għal darb'oħra, jgħidu cp copy.c resize.c.
Dan ifisser li resize.c issa fiha dak kollu li jinsab ġewwa kopja
għaliex kopja jagħtina mod tal-qari fil lil kull pixel scanline mill pixel.
Ħlief issa, minflok sempliċiment jinbidlu l-valuri bħal għamilna fil whodunit,
dak li rridu nagħmlu huwa li rridu li tikteb fil-pixels multipli
sakemm n tagħna hija akbar minn 1.
>> Imbagħad dak li rridu nagħmlu huwa li rridu stretch orizzontalment minn n,
kif ukoll stretch vertikalment mill n.
Kif jista 'nagħmlu dan?
Say n tiegħek huwa 2 u ikollok din infile mogħtija.
Cursor tiegħek se tibda fl-ewwel waħda,
u dak li inti trid tagħmel jekk n hija 2, inti tixtieq li jistampaw fi 2 minn dawn.
Allura inti print fi 2 minn dawn.
Imbagħad cursor tiegħek se jimxu lejn il-pixel li jmiss, li huwa l-waħda ħamra,
u li għaddej biex jistampa 2 ta 'dawk dawk aħmar, tannettiha fuq dak li għandu jsir qabel.
Imbagħad il-cursor se timxi mal-pixel li jmiss u iġbed 2 ta 'dawn.
Jekk inti tħares lura lejn il-qafas copy.c, dak li dan ma dritt hawn
huwa joħloq każ ġdid ta 'triple RGB, varjabbli ġdida msejħa tripla.
U hawn meta jgħid fiha, jgħid mill-infile 1 RGBTRIPLE
u taħżnu ġewwa ta 'dak il-varjabbli triplu.
Mela allura inti fil-fatt ikollhom varjabbli li jirrappreżenta lil dak pixel partikolari.
Imbagħad meta tikteb, dak li inti tista 'tixtieq li tagħmel hu li encase-dikjarazzjoni fwrite ġo għal loop
li jikteb fis outfile tiegħek kemm drabi meħtieġa.
Dak sempliċi biżżejjed.
Just bażikament irrepeti l-proċess bil-miktub n numru ta 'drabi li iskala hija orizzontalment.
>> Imma mbagħad irridu niftakru li ikkuttunar tagħna huwa se jibdlu.
Preċedentement, ngħidu aħna kienet xi ħaġa ta 'tul 3.
Imbagħad aħna se żid ftit fil kemm ikkuttunar? Just wieħed aktar li jagħmilha multiplu ta '4.
Imma ngħid aħna qed skalar din id-dehra partikolari billi n = 2.
Allura mbagħad kif ħafna pixels blu kieku aħna għandna fl-aħħar? Aħna jkollhom 6.
1, 2, 3, 4, 5, 6. Kull dritt.
6 mhijiex multiplu ta '4. X'inhu l-eqreb multiplu ta '4? Li għaddej biex tkun 8.
Allura aħna qed attwalment għaddejjin li jkollha 2 karattri ta 'ikkuttunar hemmhekk.
>> Hawn xi ħadd ftakar jekk ikollna formula biex tikkalkula ikkuttunar
u fejn li jista 'jkun?
[Rispons inaudible student] >> Yeah, copy.c. Dritt.
Hemm formula fil copy.c biex jikkalkulaw kemm ikkuttunar għandek
jingħata wisa partikolari ta 'l-immaġini Bitmap.
Mela allura li għaddej biex tkun utli meta jkollok bżonn li jiżdiedu fi ċertu ammont ta 'padding
fil-fatt insemmu kemm ikkuttunar ikollok bżonn li jiżdiedu.
Iżda wieħed nota, madankollu, huwa li inti tixtieq li tagħmel ċert li inti qed tuża l-daqs dritt.
Just ikunu attenti għax int bażikament se tkun jittrattaw ma 'żewġ immaġini Bitmap.
Inti tixtieq li tagħmel ċert li inti qed tuża l-waħda id-dritt.
Meta inti qed jiġi kkalkulat l-ikkuttunar għall-outfile, trid tuża l-wisa 'tal-outfile
u mhux il-wisa 'ta' qabel.
>> Great. Dak it-tip ta jieħu ħsieb ta 'tiġbid dehra Bitmap kollu orizzontalment.
Imma dak li rridu nagħmlu huwa attwalment stretch vertikalment kif ukoll.
Din se tkun xi ftit delikati għaliex meta aħna ħadthom lest ikkupjar fila
u bil-miktub li ringiela, cursor tagħna se tkun fl-aħħar.
Allura jekk naqraw mill-ġdid, allura huwa biss se jinqraw mal-linja li jmiss.
Allura dak li rridu nagħmlu huwa tip ta 'ssib xi mod ta' kkopjar dawk fillieri mill-ġdid
jew sempliċiment tip li tittieħed dik ringiela u mbagħad riskrittura mill-ġdid.
Kif I tip ta 'allużjoni għal, hemm ħafna modi differenti biex jagħmlu dan.
What inti tista 'tagħmel huwa kif inti qed tmur permezz ta' u l-qari permezz tal-scanline partikolari
u jinbidlu kif meħtieġ, allura it-tip ta 'maħżen kollha ta' dawk pixels fil-firxa.
Imbagħad aktar tard inti taf li ghandek bzonn biex jistampa din array mill-ġdid,
u għalhekk inti tista 'sempliċement jużaw dak array biex tagħmel dan.
Mod ieħor biex tagħmel dan huwa li inti tista 'kopja isfel filliera waħda,
jifhmu li inti jeħtieġ li kopja li għal darb'oħra, hekk fil-fatt jimxu cursor tiegħek,
u li għaddej biex tkun qed tuża l fseek metodu.
Inti tista 'timxi cursor tiegħek it-triq kollha lura u mbagħad irrepeti l-proċess kopja mill-ġdid.
>> Mela jekk in-numru ta 'skalar tagħna huwa n, allura kif ħafna drabi ikun rridu mmorru lura
u jikteb linja? >> [Student] n - 1. >> Yeah, perfetta. n - 1.
Aħna ghamilt darba diġà, hekk allura aħna ser jridu irrepeti l-proċess tmur lura
n - 1 ammont ta 'drabi.
Okay. Allura hemm ikollok funzjoni resize tiegħek.
>> Issa nistgħu nibdew għal parti verament gost, pset favorit tiegħi, li huwa Recover.
Minflok bitmaps, dan iż-żmien aħna qed jittrattaw ma JPEGs.
Aħna fil-fatt ma jingħatawx fajl biss ta JPEGs,
aħna qed jingħataw bażikament format prima karta tal-memorja.
U hekk dan fih daqsxejn ta 'valuri informazzjoni u taż-żibel fil-bidu,
u mbagħad jibda u għandu mazz ta 'fajls JPEG.
Madankollu, aħna qed jingħataw kard fejn konna mħassra-ritratti;
essenzjalment, konna minsija fejn l-ritratti jinsabu fi ħdan il-karta.
Mela allura kompitu tagħna fil Jirkupraw huwa li jmorru permezz ta 'dan il-format karta
u ssib dawk l-istampi mill-ġdid.
>> Fortunatament, l-istruttura tal-fajls JPEG u l-fajl biljett huwa daqsxejn utli.
Huwa żgur seta 'kien daqsxejn delikati li kieku ma kienx f'dan il-format partikolari.
Kull fajl JPEG attwalment jibda ma 'żewġ sekwenzi possibbli, elenkati hawn fuq.
Bażikament, kull meta għandek fajl JPEG ġdid,
jibda jew mal-sekwenza ffd8 ffe0 jew l-ieħor, ffd8 ffe1.
Ħaġa oħra utli li tkun taf li JPEGs huma maħżuna contiguously.
Allura kull meta wieħed fajl JPEG jispiċċa, l-oħra wieħed jibda.
Allura ma jkunx hemm xi tip ta 'fil-bejn il-valuri hemmhekk.
Ladarba inti hit-bidu ta 'JPEG, jekk inti stajt diġà ġiet qari JPEG,
inti taf li inti ħadthom laqat il-tarf ta 'dik ta' qabel u l-bidu ta 'dak li jmiss.
>> Biex it-tip ta Ħares dan, I għamel skematika.
Ħaġa oħra dwar JPEGs hija li nistgħu jaqrahom fil-sekwenzi ta '512 bytes fi żmien,
bl-istess mod mal-bidu tal-biljett.
Aħna ma bżonn li jiġu eżaminata kull byte wieħed minħabba li terda.
Allura minflok, dak li nistgħu nagħmlu huwa attwalment biss tinqara 512 bytes kull darba
u mbagħad, minflok ta 'kontroll fl bejn dawk f'dawk flieli ftit żgħira,
nistgħu biss tivverifika l-bidu ta 'l-bytes 512.
Essenzjalment, f'dan il-istampa, dak li tara li fil-bidu tal-biljett,
inti għandek valuri li ma humiex verament rilevanti għall-JPEGs reali nfushom.
Imma mbagħad dak li għandi hija stilla li jindika wieħed mill-sekwenzi 2 jibdew għal JPEG.
Allura meta inti tara stilla, inti taf li għandek fajl JPEG.
U mbagħad kull fajl JPEG se tkun xi multiplu ta '512 bytes
iżda mhux neċessarjament l-istess multipli.
Il-mod li inti taf li inti stajt hit ieħor JPEG hija jekk inti hit ieħor stilla,
ieħor sekwenza inizjali ta 'bytes.
Imbagħad dak li għandek hawnhekk huwa inti għandek l-fajl JPEG aħmar jkompli sakemm inti hit stilla,
li hija indikata bil-kulur ġdid.
Inti tkompli u allura inti hit ieħor star, inti hit ieħor JPEG,
inti tkompli it-triq kollha sa l-aħħar.
Int lejn l-istampa aħħar hawnhekk, il-wieħed roża.
Inti tmur sa l-aħħar sakemm inti hit l-aħħar ta 'karattru fajl.
Din se tkun verament utli.
>> A takeaways ewlenin ftit hawn:
Il-fajl biljett ma tibda bil-JPEG,
iżda ladarba JPEG tibda, kollha tal-JPEGs huma maħżuna ħdejn xulxin ma 'xulxin.
>> Xi pseudocode għall-Jirkupra.
L-ewwel, aħna qed tmur biex tiftaħ fajl karta tagħna,
u li għaddej biex tkun qed tuża fajl tagħna I / O funzjonijiet.
Aħna ser jirrepetu l-proċess li ġej sakemm aħna ħadthom laħqu t-tmiem tal-fajl.
Aħna ser jinqara 512 bytes kull darba.
U dak li għidt hawnhekk hija li aħna qed tmur biex jaħżnuh fil-buffer,
hekk bażikament iżżomm fuq għal dawk il-bytes 512 sa nafu eżattament x'għandhom jagħmlu magħhom.
Imbagħad dak li rridu nagħmlu huwa li rridu li tikkontrolla jekk konna hit stilla jew le.
Jekk konna hit stilla, jekk konna hit wieħed mill-sekwenzi tal-bidu,
allura aħna nafu li konna hit fajl JPEG ġdid.
Dak li aħna ser trid tagħmel hu li aħna qed tmur jridu toħloq fajl ġdid fl-direttorju pset4 tagħna
biex ikomplu jagħmlu dan il-fajl.
Iżda wkoll, jekk aħna stajt diġà għamlet JPEG qabel,
allura aħna tixtieq li ttemm dan il-fajl u imbotta lill-folder pset4,
fejn aħna ser ikollhom dan il-fajl maħżuna għaliex jekk aħna ma jispeċifikaw li konna ntemmet dan il-fajl JPEG,
allura aħna ser bażikament ikollhom ammont indeterminat. Il JPEGs qatt se jintemm.
Allura aħna tixtieq li tagħmel ċert li meta aħna qed qari fl għal fajl JPEG u l-kitba li,
irridu speċifikament tagħlaq li sabiex tiftaħ il-wieħed li jmiss.
Aħna ser jridu jiċċekkjaw diversi affarijiet.
Aħna rridu li jivverifika jekk aħna qed fil-bidu ta 'JPEG ġdid ma' buffer tagħna
u wkoll jekk aħna diġà sabu JPEG qabel
minħabba li se tbiddel il-proċess tiegħek ftit.
Mela allura wara li inti tmur permezz-triq kollha u inti hit l-aħħar tal-fajl,
allura dak li inti taf tixtieq tagħmel hu li tkun taf tixtieq li tagħlaq il-fajls kollha li huma bħalissa miftuħa.
Li probabbilment se jkunu l-fajl JPEG aħħar li għandek,
kif ukoll tal-fajl biljett li inti kont qed jittrattaw.
>> L-ostaklu l-aħħar li għandna bżonn biex jindirizzaw hija kif fil-fatt jagħmel fajl JPEG
u kif fil-fatt timbotta lill-folder.
Il pset teħtieġ li kull JPEG li inti ssib tkun fil-format li ġej,
fejn inti għandek l-għadd. jpg.
In-numru, anke jekk huwa 0, nagħmlu sejħa hija 000.jpg.
Kull meta inti ssib JPEG fil-programm tiegħek,
int tmur jridu isem fl-ordni li huwa sab.
Xi jfisser dan?
Għandna bżonn li tip ta 'jżommu rekord ta' kemm konna sabet
u dak in-numru ta 'kull JPEG għandu jkun.
Hawnhekk aħna qed tmur biex jieħdu vantaġġ tal-funzjoni sprintf.
Simili għall printf, li biss tip ta 'stampi ta' valur barra fil-terminal,
sprintf prints l-fajl barra fil-folder.
U hekk dak li dan se tagħmel jekk kelli sprintf, titolu, u allura l-sekwenza hemm,
ikun jistampa 2.jpg.
Jekk wieħed jassumi li stajt magħluqa fajls tiegħi korrettament,
li fihom il-fajl li I kien miktub out.
Iżda ħaġa waħda hija li l-kodiċi li għandi hawn
ma pjuttost jissodisfaw dak l-pset teħtieġ.
Il pset jeħtieġ li l-fajl JPEG 2 għandhom jissemmew 002 minflok sempliċiment 2.
Allura meta inti jistampa l-isem, allura forsi inti tista 'tixtieq li jibdlu l-placeholder ftit.
>> Hawn xi ħadd ftakar kif aħna jippermettu spazji żejda meta aħna jistampaw xi ħaġa?
Yeah. >> [Student] Inti tpoġġi 3 bejn is-sinjal fil-mija u l-2. >> Yeah, perfetta.
Int ser ikollok tpoġġi 3 f'dan il-każ għaliex irridu spazju għall-3.
3d% probabbilment jagħtuk 002.jpg minflok 2.
L-ewwel argument fil-funzjoni sprintf huwa attwalment firxa char,
li aħna preċedentement kienu jafu kif kordi.
Dawk rieda, tip ta 'aktar bħal ħażna temporanja, biss jaħżnu l-sekwenza riżultanti.
Inti mhux se verament tkun jittrattaw ma 'dan, iżda inti għandek bżonn li din tiġi inkluża.
>> Jafu li kull isem ta 'fajl għandha l-għadd, li jieħu sa tliet karattri,
u mbagħad. jpg, kemm jekk dan array jkun?
Tarmi out numru. Kemm karattri fit-titolu, fl-isem?
Allura hemm 3 hashtags, perjodu, jpg. >> [Student] 7. >> 7. Mhux pjuttost.
Aħna qed tmur jridu 8 għaliex irridu li jippermetti l-terminatur null ukoll.
>> Fl-aħħarnett, biss biex tiġbed l-proċess li inti ser tkun qiegħda tagħmel biex jirkupraw,
għandek xi informazzjoni bidu.
Inti tkompli sakemm issib il-bidu ta 'fajl JPEG,
u li jista 'jkun jew wieħed minn żewġ sekwenzi tal-bidu.
Inti żżomm fuq qari. Kull slash hawn tirrappreżenta 512 bytes.
Inti żżomm fuq qari, iżommu dwar qari sakemm inti tiltaqa ieħor sekwenza tibda.
Ladarba inti tkun li, inti tispiċċa l-JPEG attwali - f'dan il-każ, huwa l-waħda ħamra,
sabiex inti tixtieq li ttemm dan.
Inti tixtieq li sprintf-isem ta 'dik fil-folder pset4 tiegħek,
imbagħad inti tixtieq li tiftaħ JPEG ġdid u imbagħad żomm fuq qari
sakemm inti tiltaqa li jmiss.
Żomm fuq qari, iżommu qari,
u mbagħad finalment, eventwalment, int ser jilħqu t-tmiem tal-fajl,
u sabiex tkun taf tixtieq li tagħlaq il-JPEG aħħar li inti kienu qed jaħdmu ma ',
sprintf li fil-folder pset4 tiegħek, u mbagħad tħares lejn kollha ta 'l-istampi li inti stajt gotten.
Dawk ritratti huma attwalment ritratti ta 'CS50 persunal,
u għalhekk dan huwa fejn il-parti gost bonus tal-pset tiġi fi
hija li inti qed jikkompetu fit-taqsimiet tiegħek biex issib l-TFS fl-istampi
u jieħdu ritratti magħhom li tipprova li inti ghamilt l pset
u sabiex inti tista 'tara li l-membri tal-persunal huma fl-istampi.
Mela allura inti tieħu ritratti mal-persunal. Kultant inti ser ikollok chase them down.
Probabbilment xi wħud minnhom se jippruvaw jimxu 'l bogħod mill inti.
Għandek tieħu ritratti magħhom.
Dan huwa għaddej. Mhuwiex dovut meta l-pset huwa dovut.
L-iskadenza se jitħabbru fil-spec.
Imbagħad flimkien mat-taqsima tiegħek, liema taqsima tieħu l-istampi l-aktar
mal-membri tal-persunal l-aktar se jirbaħ premju pjuttost tal-biża.
Dak it-tip ta 'inċentiv biex tikseb pset4 tiegħek spiċċa jista' jkun malajr
għaliex imbagħad inti tista 'tikseb l-ħidma
kaċċa stabbiliti-membri kollha tal-persunal differenti CS50.
Li mhux obbligatorju, għalkemm, hekk darba ikollok l-istampi,
allura inti lest ma pset4.
>> U jien lest ma Walkthrough 4, hekk nirringrazzjakom ilkoll għall ġejjin.
Xorti tajba mal-forensika. [Applause]
[CS50.TV]