1 00:00:00,000 --> 00:00:09,500 >> [CHWARAE CERDDORIAETH] 2 00:00:09,500 --> 00:00:12,350 >> ZAMYLA Chan: Yr oedd Miss Scarlett gyda'r canhwyllbren. 3 00:00:12,350 --> 00:00:13,560 Whodunit? 4 00:00:13,560 --> 00:00:15,030 Wel, rydym yn mynd i gael gwybod. 5 00:00:15,030 --> 00:00:20,870 Yn y gêm fwrdd Cliw, efallai eich bod yn cael delwedd coch corfforol. 6 00:00:20,870 --> 00:00:24,120 A dyna ddelwedd yn goch iawn ac smotiog, a bod eich gwaith yw 7 00:00:24,120 --> 00:00:25,490 dangos y neges gudd. 8 00:00:25,490 --> 00:00:29,740 Ac fel arfer rydych yn eu darparu gyda goch chwyddwydr, neu sgrîn coch i 9 00:00:29,740 --> 00:00:31,410 yn datgelu bod neges gudd. 10 00:00:31,410 --> 00:00:33,340 Wel, rydym yn mynd i ddynwared hynny. 11 00:00:33,340 --> 00:00:37,960 >> Yn whodunit, rydych yn rhoi delwedd bitmap sy'n edrych smotiog a choch iawn, 12 00:00:37,960 --> 00:00:43,430 ac yna rhedeg y rhaglen whodunit i ddatgelu neges gudd. 13 00:00:43,430 --> 00:00:45,650 >> Felly, gadewch i ni dorri hyn yn gamau. 14 00:00:45,650 --> 00:00:50,390 Yn gyntaf, yr ydych am i agor y ffeil - y cliw eich bod wedi ei roi. 15 00:00:50,390 --> 00:00:53,880 Ac yna hefyd yn creu ffeil didfap rheithfarn. 16 00:00:53,880 --> 00:00:58,240 Yna ydych am i ddiweddaru'r didfap header gwybodaeth ar gyfer yr outfile rheithfarn. 17 00:00:58,240 --> 00:00:59,920 Mwy am hynny yn nes ymlaen. 18 00:00:59,920 --> 00:01:04,319 Ac yna rydych chi'n mynd i ddarllen i mewn i'r cliw, scanline, picsel gan picsel, 19 00:01:04,319 --> 00:01:07,320 newid y lliwiau pixel fel angen, ac ysgrifennu 20 00:01:07,320 --> 00:01:08,960 hynny yn y dyfarniad - 21 00:01:08,960 --> 00:01:12,000 picsel gan picsel i mewn i'r scanline rheithfarn. 22 00:01:12,000 --> 00:01:13,780 >> Sut ydym yn dechrau mynd o gwmpas hyn? 23 00:01:13,780 --> 00:01:16,940 Wel, yn ffodus, rydym wedi copy.c yn y cod dosbarthu. 24 00:01:16,940 --> 00:01:21,240 Ac mae hyn yn mynd i brofi eithaf defnyddiol i ni. 25 00:01:21,240 --> 00:01:29,700 Copy.c yn agor ffeil, darllen yn y header infile, ac yna yn diweddaru'r 26 00:01:29,700 --> 00:01:31,070 header outfile yn. 27 00:01:31,070 --> 00:01:37,010 Ac yna mae'n darllen bob picsel yn y scanline, picsel gan picsel, ac yna 28 00:01:37,010 --> 00:01:42,390 yn ysgrifennu bod picsel i mewn i'r outfile. 29 00:01:42,390 --> 00:01:45,020 >> Felly, gallai eich cam cyntaf fydd rhedeg y canlynol 30 00:01:45,020 --> 00:01:46,420 gorchymyn yn y derfynell - 31 00:01:46,420 --> 00:01:50,270 cp whodunit.c copy.c. 32 00:01:50,270 --> 00:01:55,320 Bydd hyn yn creu copi o copy.c a enwir whodunit.c. 33 00:01:55,320 --> 00:01:58,320 Felly, ein cam cyntaf i agor y ffeil, wel, mae union 34 00:01:58,320 --> 00:02:00,070 replica o hynny yn copy.c. 35 00:02:00,070 --> 00:02:03,360 Felly, byddaf yn eich gadael i edrych ar hynny. 36 00:02:03,360 --> 00:02:07,860 >> Yr hyn yr ydym yn delio â hwy yn PSET hwn yn cael ei ffeil gallaf / O, yn y bôn yn cymryd ffeil, 37 00:02:07,860 --> 00:02:10,229 darllen, ysgrifennu, eu golygu. 38 00:02:10,229 --> 00:02:12,650 Sut ydych chi yn gyntaf agor ffeil? 39 00:02:12,650 --> 00:02:16,800 Wel, yr ydych yn mynd i ddatgan ffeil pwyntydd, ac yna byddwch yn ffonio y 40 00:02:16,800 --> 00:02:18,670 fopen swyddogaeth. 41 00:02:18,670 --> 00:02:23,150 Pasio yn y llwybr, neu enw hwnnw ffeilio, ac yna y modd yr ydych am 42 00:02:23,150 --> 00:02:24,700 i agor y ffeil i mewn 43 00:02:24,700 --> 00:02:28,620 Bydd Pasio mewn r agor foo.bmp ar gyfer darllen. 44 00:02:28,620 --> 00:02:35,670 Tra fopen gyda pasio mewn w yn bar.bmp agored, ar gyfer ysgrifennu y ffeil ac 45 00:02:35,670 --> 00:02:37,020 mewn gwirionedd yn golygu ei. 46 00:02:37,020 --> 00:02:41,970 >> Felly, yn awr ein bod wedi agor y ffeil, bydd ein cam nesaf yw diweddaru'r wybodaeth pennawd 47 00:02:41,970 --> 00:02:43,230 gyfer y outfile. 48 00:02:43,230 --> 00:02:44,610 Beth yw wybodaeth pennawd? 49 00:02:44,610 --> 00:02:48,160 Wel, yn gyntaf mae angen i ni wybod beth yw didfap ydyw. 50 00:02:48,160 --> 00:02:51,000 Mae didfap yn unig yw syml trefniant o bytes. 51 00:02:51,000 --> 00:02:55,480 Ac maent yn datgan yn y ffeil hon yma, bmp.h, gyda chriw o 52 00:02:55,480 --> 00:02:58,610 gwybodaeth am beth yw bitmap yn cael ei wneud mewn gwirionedd y tu allan i. 53 00:02:58,610 --> 00:03:05,730 Ond yr hyn yr ydym yn wir yn poeni am y header ffeil didfap, dde yma, a 54 00:03:05,730 --> 00:03:08,460 pennawd gwybodaeth didfap, dros yma. 55 00:03:08,460 --> 00:03:13,170 Mae'r pennawd yn cynnwys un neu ddau o newidynnau a fydd yn ddefnyddiol iawn. 56 00:03:13,170 --> 00:03:18,400 Mae biSizeImage, sef y cyfanswm maint y ddelwedd mewn bytes. 57 00:03:18,400 --> 00:03:20,890 Ac mae hyn yn cynnwys picsel a padin. 58 00:03:20,890 --> 00:03:24,210 Padin yn bwysig iawn, ond byddwn yn mynd at hynny yn ddiweddarach. 59 00:03:24,210 --> 00:03:30,000 >> BiWidth cynrychioli lled y delwedd mewn picseli heb y padin. 60 00:03:30,000 --> 00:03:34,220 BiHeight wedyn hefyd uchder o'r ddelwedd mewn picseli. 61 00:03:34,220 --> 00:03:38,240 Ac yna y BITMAPFILEHEADER a'r BITMAPINFOHEADER, fel y soniais 62 00:03:38,240 --> 00:03:40,900 yn gynharach, y rhai yn cael eu cynrychioli fel structs. 63 00:03:40,900 --> 00:03:45,410 Felly, ni allwch gael mynediad i'r pennawd ffeil ei hun, ond byddwch yn dymuno mynd i'r 64 00:03:45,410 --> 00:03:47,370 newidynnau hynny y tu mewn. 65 00:03:47,370 --> 00:03:48,170 >> OK. 66 00:03:48,170 --> 00:03:50,600 Felly, sut rydym yn diweddaru'r wybodaeth pennawd? 67 00:03:50,600 --> 00:03:54,020 Wel, yn gyntaf mae'n rhaid i ni weld a ydym Mae angen i newid unrhyw wybodaeth gan 68 00:03:54,020 --> 00:03:58,480 y infile, y cliw, i'r outfile, y dyfarniad. 69 00:03:58,480 --> 00:04:00,250 A yw unrhyw beth sy'n newid yn yr achos hwn? 70 00:04:00,250 --> 00:04:04,320 Wel, nid mewn gwirionedd, oherwydd ein bod yn mynd i gael dim ond newid y lliwiau. 71 00:04:04,320 --> 00:04:07,550 Nid ydym yn mynd i fod yn newid y ffeil maint, maint delwedd, y lled, 72 00:04:07,550 --> 00:04:08,310 neu uchder. 73 00:04:08,310 --> 00:04:14,010 Felly, rydych chi'n iawn ar hyn o bryd gan dim ond copïo pob picsel. 74 00:04:14,010 --> 00:04:14,840 >> OK. 75 00:04:14,840 --> 00:04:20,720 Felly nawr gadewch i ni edrych ar sut yr ydym mewn gwirionedd yn gallu darllen pob picsel o'r ffeil. 76 00:04:20,720 --> 00:04:23,640 Ffeil arall I / O swyddogaeth yn dod i chwarae - 77 00:04:23,640 --> 00:04:24,700 fread. 78 00:04:24,700 --> 00:04:28,440 Mae'n cynnwys pwyntydd i'r strwythur a fydd yn cynnwys y bytes sy'n 79 00:04:28,440 --> 00:04:30,110 ydych yn darllen. 80 00:04:30,110 --> 00:04:31,890 Felly, rydych yn darllen i mewn i hynny. 81 00:04:31,890 --> 00:04:36,090 Ac yna byddwch yn mynd heibio mewn maint, sydd yn maint pob elfen yr ydych 82 00:04:36,090 --> 00:04:37,360 eisiau darllen. 83 00:04:37,360 --> 00:04:40,640 Yma, mae'r sizeof swyddogaeth yn dod mewn 'n hylaw. 84 00:04:40,640 --> 00:04:45,570 Yna byddwch yn pasio yn nifer, a oedd yn yn cynrychioli nifer yr elfennau o 85 00:04:45,570 --> 00:04:47,480 maint i ddarllen. 86 00:04:47,480 --> 00:04:51,180 Ac yna yn olaf, inptr, sy'n y pwyntydd ffeil eich bod yn 87 00:04:51,180 --> 00:04:52,530 mynd i ddarllen o. 88 00:04:52,530 --> 00:04:58,650 Felly yr holl elfennau hynny yn y tu mewn inptr ac maent yn mynd i data. 89 00:04:58,650 --> 00:05:01,660 >> Gadewch i ni edrych ar ychydig o esiampl. 90 00:05:01,660 --> 00:05:07,590 Os ydw i eisiau darllen yn ddata dau gi, wel, yr wyf yn ei wneud yn un o ddwy ffordd. 91 00:05:07,590 --> 00:05:15,250 Gallaf naill ai darllen dau wrthrych o faint ci o fy inptr, neu a allaf ddarllen 92 00:05:15,250 --> 00:05:19,280 mewn un wrthwynebu y maint o ddau gi. 93 00:05:19,280 --> 00:05:23,580 Felly, byddwch yn gweld bod gan ddibynnu ar y ffordd eich bod yn trefnu maint a nifer, yr ydych yn 94 00:05:23,580 --> 00:05:25,840 gallu darllen yn yr un nifer o bytes. 95 00:05:25,840 --> 00:05:28,720 96 00:05:28,720 --> 00:05:33,020 >> Felly nawr, gadewch i ni newid y lliw picsel gan fod angen. 97 00:05:33,020 --> 00:05:37,320 Os ydych yn edrych ar bmp.h eto, yna byddwch yn gweld bod ar y gwaelod 98 00:05:37,320 --> 00:05:42,920 RGBTRIPLEs yn strwythur arall, lle maent yn cael eu cynnwys o dri bytes. 99 00:05:42,920 --> 00:05:49,220 Un, rgbtBlue, rgbtGreen, a rgbtRed. 100 00:05:49,220 --> 00:05:52,480 Felly, pob un o'r rhain yn cynrychioli'r swm o sidan glas, y swm o wyrdd, ac mae'r 101 00:05:52,480 --> 00:05:57,250 faint o goch y tu mewn picsel hwn, lle pob swm yn cael ei gynrychioli gan 102 00:05:57,250 --> 00:05:58,670 rhif hecsadegol. 103 00:05:58,670 --> 00:06:04,370 >> Felly bydd ff0000 fod yn lliw glas, oherwydd ei fod yn mynd o las, 104 00:06:04,370 --> 00:06:05,850 i wyrdd, i goch. 105 00:06:05,850 --> 00:06:09,300 Ac yna bydd yr holl f fod yn wyn. 106 00:06:09,300 --> 00:06:13,440 Gadewch i ni edrych ar smiley.bmp, a oedd yn sydd gennych yn eich cod dosbarthu. 107 00:06:13,440 --> 00:06:15,690 Os byddwch yn agor mewn dim ond delwedd gwyliwr, yna wnewch chi helpu 108 00:06:15,690 --> 00:06:17,080 ond yn gweld gwenu goch. 109 00:06:17,080 --> 00:06:20,380 Ond cymryd plymio ddyfnach i mewn, rydym yn annhymerus ' gweld bod y strwythur 110 00:06:20,380 --> 00:06:22,340 ohono yn unig picsel. 111 00:06:22,340 --> 00:06:25,880 Mae gennym picsel gwyn, ac yna picsel coch. 112 00:06:25,880 --> 00:06:31,000 Y gwyn, FFFFFF, ac yna pob un o'r picsel coch Rwyf wedi lliw ar eich rhan 113 00:06:31,000 --> 00:06:35,440 yma, a byddwch yn gweld eu bod yn 0000ff. 114 00:06:35,440 --> 00:06:39,760 Sero glas, gwyrdd sero, a choch llawn. 115 00:06:39,760 --> 00:06:45,350 Ac ers gwenu yn wyth picsel o led, Nid oes gennym unrhyw padin. 116 00:06:45,350 --> 00:06:47,360 Mae pob hawl. 117 00:06:47,360 --> 00:06:53,310 >> Felly, pe bawn yn neilltuo gwahanol werthoedd i RGBTRIPLE ac roeddwn i eisiau 118 00:06:53,310 --> 00:06:58,350 wneud yn wyrdd, yna beth fyddwn i'n ei wneud yw Byddwn yn datgan RGBTRIPLE, a enwyd 119 00:06:58,350 --> 00:07:02,660 triphlyg, ac yna i gael mynediad at bob beit o fewn y strwythur yr wyf yn 120 00:07:02,660 --> 00:07:04,030 fyddai'n defnyddio'r gweithredwr dot. 121 00:07:04,030 --> 00:07:08,430 Felly triple.rgbtBlue, gallaf aseinio hynny i 0. 122 00:07:08,430 --> 00:07:13,460 Green Gallaf neilltuo i llawn - unrhyw rhif, mewn gwirionedd, rhwng 0 a ff. 123 00:07:13,460 --> 00:07:15,470 Ac yna goch, yr wyf hefyd i'n mynd i ddweud 0. 124 00:07:15,470 --> 00:07:19,160 Felly, yna mae hynny'n rhoi picsel gwyrdd mi. 125 00:07:19,160 --> 00:07:23,030 >> Nesaf, beth os ydw i eisiau i wirio gwerth o rywbeth? 126 00:07:23,030 --> 00:07:27,250 Gallai gen i rywbeth sy'n gwirio a yw gwerth rgbtBlue yw'r triphlyg yn 127 00:07:27,250 --> 00:07:31,080 ff ac yna print, "Rydw i'n teimlo'n glas! ", o ganlyniad. 128 00:07:31,080 --> 00:07:35,640 Nawr, nid yw hynny'n golygu o reidrwydd bod y picsel yn las, dde? 129 00:07:35,640 --> 00:07:40,060 Gan fod gwerthoedd gwyrdd a choch y picsel yn gallai hefyd gael nad ydynt yn 0 gwerthoedd. 130 00:07:40,060 --> 00:07:43,470 Cyfan y mae hyn yn ei olygu, a hynny i gyd mae hyn yn gwirio amdano yw 131 00:07:43,470 --> 00:07:45,610 ar gyfer lliw glas llawn. 132 00:07:45,610 --> 00:07:50,050 Ond gallai pob picsel hefyd rhannol gwerthoedd lliw, fel hyn 133 00:07:50,050 --> 00:07:52,180 enghraifft nesaf yma. 134 00:07:52,180 --> 00:07:55,400 >> Mae'n ychydig yn fwy anodd i weld pa ddelwedd hon yn awr. 135 00:07:55,400 --> 00:08:00,320 Mae hyn yn edrych ychydig yn fwy fel y clue.bmp y byddwch yn ei roi. 136 00:08:00,320 --> 00:08:03,600 Yn awr, yn gorfforol, efallai y byddwch yn datrys hyn, oherwydd mae llawer o goch, gan 137 00:08:03,600 --> 00:08:07,040 dal i fyny sgrin coch i'r ddelwedd, felly y gall y lliwiau eraill yn ymddangos. 138 00:08:07,040 --> 00:08:10,968 Felly, sut rydym yn dynwared hyn gyda c? 139 00:08:10,968 --> 00:08:15,640 Wel, efallai y byddwn yn symud yr holl coch o'r ddelwedd yn gyfan gwbl. 140 00:08:15,640 --> 00:08:21,870 Ac felly i wneud hynny byddwn yn gosod pob gwerth coch picsel i 0. 141 00:08:21,870 --> 00:08:25,020 Ac felly byddai y ddelwedd yn edrych ychydig yn ychydig fel hwn, lle nad oes gennym coch 142 00:08:25,020 --> 00:08:26,300 o gwbl. 143 00:08:26,300 --> 00:08:29,390 >> Gallwn weld y neges cudd a ychydig bach yn fwy clir yn awr. 144 00:08:29,390 --> 00:08:31,730 Mae'n wyneb sy'n gwenu arall. 145 00:08:31,730 --> 00:08:33,870 Neu efallai gallem ddefnyddio dull arall. 146 00:08:33,870 --> 00:08:36,480 Efallai, gallem nodi pob un o'r picsel coch - 147 00:08:36,480 --> 00:08:41,100 hynny yw, pob un o'r picsel gyda 0 glas, 0 gwyrdd, a 0 goch - 148 00:08:41,100 --> 00:08:43,169 a newid hynny i gwyn. 149 00:08:43,169 --> 00:08:45,470 Ac efallai ein delwedd yn edrych rhywbeth fel hyn. 150 00:08:45,470 --> 00:08:48,250 Ychydig bach yn haws eu gweld. 151 00:08:48,250 --> 00:08:51,170 >> Mae llawer o ffyrdd eraill i ddatgelu y neges gyfrinach hefyd, 152 00:08:51,170 --> 00:08:53,730 ymdrin â'r trin lliw. 153 00:08:53,730 --> 00:08:57,050 Efallai y gallech ddefnyddio un o'r dulliau y soniais amdanynt uchod. 154 00:08:57,050 --> 00:08:59,600 Ac yn ogystal, efallai y byddwch am i wella rhai lliwiau 155 00:08:59,600 --> 00:09:02,620 a ti eu. 156 00:09:02,620 --> 00:09:06,190 >> Felly, yn awr ein bod wedi newid y picsel lliw, nesaf mae'n rhaid i ni eu hysgrifennu 157 00:09:06,190 --> 00:09:08,500 i mewn i'r scanline, picsel gan picsel. 158 00:09:08,500 --> 00:09:11,860 Ac unwaith eto, byddwch am edrych yn ôl i copy.c, os nad ydych wedi copïo 159 00:09:11,860 --> 00:09:18,170 mae eisoes, ac edrych ar y fwrite swyddogaeth, sy'n cymryd data, pwyntydd 160 00:09:18,170 --> 00:09:23,230 at y strwythur sy'n cynnwys y bytes eich bod yn darllen o, maint y 161 00:09:23,230 --> 00:09:26,610 yr eitemau, mae nifer o eitemau, ac yna y outptr - 162 00:09:26,610 --> 00:09:29,450 cyrchfan y ffeiliau hynny. 163 00:09:29,450 --> 00:09:34,010 >> Ar ôl i chi ysgrifennu yn y picsel, wnewch chi helpu rhaid hefyd i ysgrifennu yn y padin. 164 00:09:34,010 --> 00:09:34,970 Beth yw padin? 165 00:09:34,970 --> 00:09:38,670 Wel, pob picsel rgbt yw tri bytes o hyd. 166 00:09:38,670 --> 00:09:43,670 Ond, mae'r scanline am ddelwedd didfap rhaid iddo fod yn lluosrif o bedwar bytes. 167 00:09:43,670 --> 00:09:47,650 Ac os nad yw nifer o bicseli yn lluosog o bedwar, yna mae angen i ychwanegu 168 00:09:47,650 --> 00:09:48,880 padin hwn. 169 00:09:48,880 --> 00:09:51,420 Padin yn unig a gynrychiolir gan 0s. 170 00:09:51,420 --> 00:09:54,380 Felly, sut yr ydym yn ysgrifennu, neu ddarllen hwn? 171 00:09:54,380 --> 00:09:59,280 Wel, mae'n troi allan nad ydych yn gallu padin fread mewn gwirionedd, ond gallwch 172 00:09:59,280 --> 00:10:00,970 gyfrifo. 173 00:10:00,970 --> 00:10:04,400 >> Yn yr achos hwn, y cliw a'r dyfarniad cael yr un lled, felly mae'r 174 00:10:04,400 --> 00:10:05,910 padin yr un fath. 175 00:10:05,910 --> 00:10:09,370 Ac mae'r padin, fel y byddwch yn gweld yn copy.c, yn cael ei gyfrifo 176 00:10:09,370 --> 00:10:11,790 â'r fformiwla isod - 177 00:10:11,790 --> 00:10:16,690 sizeof Amseroedd bi.biWidth (RGBTRIPLE) yn rhoi faint o bytes y bmp ni 178 00:10:16,690 --> 00:10:18,280 Mae ym mhob rhes. 179 00:10:18,280 --> 00:10:21,890 Oddi yno, mae'r modulos a thynnu gyda 4 yn gallu cyfrifo sut 180 00:10:21,890 --> 00:10:25,610 Rhaid nifer o bytes cael eu hychwanegu fel bod y lluosrif o bytes ar 181 00:10:25,610 --> 00:10:27,250 pob rhes yw pedwar. 182 00:10:27,250 --> 00:10:30,490 >> Nawr bod gennym y fformiwla ar gyfer faint o padin ei angen arnom, yn awr 183 00:10:30,490 --> 00:10:31,610 gallwn ei ysgrifennu. 184 00:10:31,610 --> 00:10:34,080 Yn awr, yr wyf yn crybwyll o'r blaen, padin yn unig 0s. 185 00:10:34,080 --> 00:10:39,730 Felly, yn yr achos hwnnw, rydym yn dim ond rhoi golosg, yn yr achos hwn 0, yn ein 186 00:10:39,730 --> 00:10:41,710 outptr - ein outfile. 187 00:10:41,710 --> 00:10:47,530 Felly, gall fod ychydig yn fputc 0, outptr coma. 188 00:10:47,530 --> 00:10:52,400 >> Felly, er ein bod wedi bod yn darllen i mewn i'n ffeil, ffeil I / O wedi cadw golwg ar ein 189 00:10:52,400 --> 00:10:57,440 sefyllfa mewn ffeiliau rhai sydd â rhywbeth Gelwir y dangosydd sefyllfa ffeil. 190 00:10:57,440 --> 00:10:59,350 Meddyliwch am y peth fel cyrchwr. 191 00:10:59,350 --> 00:11:03,550 Yn y bôn, mae'n datblygiadau bob tro ein bod yn fread, ond mae gennym 192 00:11:03,550 --> 00:11:05,671 reoli drosto, hefyd. 193 00:11:05,671 --> 00:11:11,030 >> Er mwyn symud y dangosydd sefyllfa ffeil, gallwch ddefnyddio'r fseek swyddogaeth. 194 00:11:11,030 --> 00:11:15,600 Lle mae'r inptr yn cynrychioli y ffeil pwyntydd eich bod yn chwilio am i mewn, y 195 00:11:15,600 --> 00:11:20,370 swm hwn yn y nifer o bytes eich bod yn eisiau symud y cyrchwr, ac yna o 196 00:11:20,370 --> 00:11:23,470 yn ymwneud â'r pwynt cyfeirio o ble mae eich cyrchwr. 197 00:11:23,470 --> 00:11:26,770 Os byddwch yn pasio yn SEEK_CUR, bod cynrychioli'r ar hyn o bryd 198 00:11:26,770 --> 00:11:28,100 safle yn y ffeil. 199 00:11:28,100 --> 00:11:31,020 Neu gallwch ddefnyddio rhai paramedrau eraill. 200 00:11:31,020 --> 00:11:35,400 Felly, efallai y byddwn am ddefnyddio fseek i sgip dros y padin y ffeil yn. 201 00:11:35,400 --> 00:11:39,410 Ac eto, os ydych yn sownd, mae enghraifft o hynny yn copy.c. 202 00:11:39,410 --> 00:11:43,260 >> Felly nawr rydym wedi agor y ffeil, y cliw, a'r dyfarniad. 203 00:11:43,260 --> 00:11:46,450 Rydym wedi diweddaru y wybodaeth pennawd ar gyfer ein dyfarniad, oherwydd y mae pob 204 00:11:46,450 --> 00:11:48,730 angen header didfap. 205 00:11:48,730 --> 00:11:52,280 Hynny rydym wedi darllen i mewn i'r cliw yn scanline, picsel gan picsel, newid 206 00:11:52,280 --> 00:11:55,210 bob lliw yn ôl yr angen, a ysgrifennu hynny yn y 207 00:11:55,210 --> 00:11:57,340 dyfarniad, picsel gan picsel. 208 00:11:57,340 --> 00:12:01,550 Unwaith y byddwch yn agor dyfarniad, gallwch weld pwy y troseddwr, neu beth y gyfrinach 209 00:12:01,550 --> 00:12:02,850 neges yn. 210 00:12:02,850 --> 00:12:05,550 Fy enw i yw Zamyla, ac roedd hyn yn whodunit. 211 00:12:05,550 --> 00:12:12,864