1 00:00:00,000 --> 00:00:09,500 >> [MUSIC nagpe-play] 2 00:00:09,500 --> 00:00:12,350 >> ZAMYLA Chan: Ito ay Miss Scarlett sa kandelero. 3 00:00:12,350 --> 00:00:13,560 Sinong may kagagawan? 4 00:00:13,560 --> 00:00:15,030 Well, kami ay pagpunta upang malaman. 5 00:00:15,030 --> 00:00:20,870 Sa board game na bakas, maaari mong ay bibigyan ng isang pisikal na pula imahe. 6 00:00:20,870 --> 00:00:24,120 At ang imaheng iyon ay napaka-pula at batik-batik, at ang iyong trabaho ay upang 7 00:00:24,120 --> 00:00:25,490 ipakita ang nakatagong mensahe. 8 00:00:25,490 --> 00:00:29,740 At kadalasan ka ibinigay na may pulang magnifying glass, o isang red screen upang 9 00:00:29,740 --> 00:00:31,410 magbunyag na nakatago mensahe. 10 00:00:31,410 --> 00:00:33,340 Well, kami ay pagpunta sa gayahin iyon. 11 00:00:33,340 --> 00:00:37,960 >> Sa sinong may kagagawan, bibigyan ka ng bitmap imahe na mukhang napaka-batik-batik at pula, 12 00:00:37,960 --> 00:00:43,430 at pagkatapos ay patakbuhin ang programa sinong may kagagawan upang ipakita ang isang nakatagong mensahe. 13 00:00:43,430 --> 00:00:45,650 >> Kaya sabihin masira ito sa mga hakbang. 14 00:00:45,650 --> 00:00:50,390 Una, gusto mong buksan ang file - ang bakas na iyong binigyan. 15 00:00:50,390 --> 00:00:53,880 At pagkatapos ay ring lumikha ng isang pasya ng hurado bitmap file. 16 00:00:53,880 --> 00:00:58,240 Pagkatapos nais mong i-update ang bitmap header ng impormasyon para sa pasya ng hurado outfile. 17 00:00:58,240 --> 00:00:59,920 Higit sa na mamaya. 18 00:00:59,920 --> 00:01:04,319 At pagkatapos ka ng pagpunta sa basahin sa bakas, scanline, pixel sa pamamagitan ng pixel, 19 00:01:04,319 --> 00:01:07,320 pagbabago ng mga kulay pixel na bilang kinakailangan, at pagsusulat 20 00:01:07,320 --> 00:01:08,960 mga papunta sa hatol ng hurado - 21 00:01:08,960 --> 00:01:12,000 pixel sa pamamagitan ng pixel sa pasya ng hurado scanline. 22 00:01:12,000 --> 00:01:13,780 >> Paano kami magsimula ng pagpunta tungkol dito? 23 00:01:13,780 --> 00:01:16,940 Well, sa kabutihang-palad, mayroon kaming copy.c sa code sa pamamahagi. 24 00:01:16,940 --> 00:01:21,240 At ito ay pagpunta upang patunayan medyo kapaki-pakinabang sa amin. 25 00:01:21,240 --> 00:01:29,700 Copy.c nagbukas ng file, bumabasa sa na header infile, at pagkatapos ay i-a-update ng 26 00:01:29,700 --> 00:01:31,070 header outfile ni. 27 00:01:31,070 --> 00:01:37,010 At pagkatapos ay bumabasa nito sa bawat pixel sa scanline, pixel sa pamamagitan ng pixel, at pagkatapos ay 28 00:01:37,010 --> 00:01:42,390 writes na pixel sa outfile. 29 00:01:42,390 --> 00:01:45,020 >> Kaya, ang iyong unang hakbang lakas maging upang patakbuhin ang sumusunod na 30 00:01:45,020 --> 00:01:46,420 utos sa terminal - 31 00:01:46,420 --> 00:01:50,270 CP copy.c whodunit.c. 32 00:01:50,270 --> 00:01:55,320 Ito ay bubuo ng isang kopya ng copy.c pinangalanang whodunit.c. 33 00:01:55,320 --> 00:01:58,320 Kaya aming mga unang hakbang upang buksan ang file, mahusay, mayroong isang eksaktong 34 00:01:58,320 --> 00:02:00,070 katulad ng na sa copy.c. 35 00:02:00,070 --> 00:02:03,360 Kaya kukunin ko na umalis na tumingin sa na. 36 00:02:03,360 --> 00:02:07,860 >> Ano kami ay pakikitungo sa sa ito PSET ay file I / O, isa lamang ang pagkuha ng mga file, 37 00:02:07,860 --> 00:02:10,229 pagbasa, pagsulat, pag-edit ng mga ito. 38 00:02:10,229 --> 00:02:12,650 Paano mo munang buksan ang isang file? 39 00:02:12,650 --> 00:02:16,800 Well, ikaw ay pagpunta na idedeklara ng isang file pointer, at pagkatapos ay tumawag sa iyo ang 40 00:02:16,800 --> 00:02:18,670 function na fopen. 41 00:02:18,670 --> 00:02:23,150 Dumaan sa path, o ang pangalan ng na mag-file, at pagkatapos ay ang mode na gusto mong 42 00:02:23,150 --> 00:02:24,700 mabuksan ang file na in 43 00:02:24,700 --> 00:02:28,620 Pasadong sa isang r ay magbubukas foo.bmp para sa pagbabasa. 44 00:02:28,620 --> 00:02:35,670 Sapagkat fopen sa pagpasa sa isang w habilin bukas bar.bmp, para sa pagsusulat ng mga file at 45 00:02:35,670 --> 00:02:37,020 talaga ang pag-edit ito. 46 00:02:37,020 --> 00:02:41,970 >> Kaya ngayon na binuksan namin ang file, ang aming susunod na hakbang ay upang i-update ang impormasyon ng header 47 00:02:41,970 --> 00:02:43,230 para sa outfile. 48 00:02:43,230 --> 00:02:44,610 Ano ang isang impormasyon ng header? 49 00:02:44,610 --> 00:02:48,160 Well, kailangan muna naming malaman kung ano ang isang bitmap ay. 50 00:02:48,160 --> 00:02:51,000 Ang isang bitmap ay isang simpleng lamang pag-aayos ng bytes. 51 00:02:51,000 --> 00:02:55,480 At ang mga ito ay ipinahayag sa file na ito dito, bmp.h, may isang bungkos ng 52 00:02:55,480 --> 00:02:58,610 impormasyon ng kung ano ang isang bitmap ay aktwal na ginawa sa labas ng. 53 00:02:58,610 --> 00:03:05,730 Ngunit ano ba talagang pakialam namin tungkol sa ay ang Header ng bitmap file, dito mismo, at 54 00:03:05,730 --> 00:03:08,460 ang bitmap header ng impormasyon, sa paglipas dito. 55 00:03:08,460 --> 00:03:13,170 Ang header ay binubuo ng isang pares ng mga mga variable na iyon ay patunayan napaka kapaki-pakinabang. 56 00:03:13,170 --> 00:03:18,400 May biSizeImage, kung saan ay ang kabuuang sukat ng imahe sa bytes. 57 00:03:18,400 --> 00:03:20,890 At ito ay kasama ang mga pixel at padding. 58 00:03:20,890 --> 00:03:24,210 Padding ay napakahalaga, ngunit susuriin namin na sa ibang pagkakataon. 59 00:03:24,210 --> 00:03:30,000 >> BiWidth kumakatawan sa lapad ng mga larawan sa pixels minus ang padding. 60 00:03:30,000 --> 00:03:34,220 Pagkatapos BiHeight ding ang taas ng larawan sa pixels. 61 00:03:34,220 --> 00:03:38,240 At pagkatapos ay ang BITMAPFILEHEADER at ang BITMAPINFOHEADER, bilang ko nabanggit 62 00:03:38,240 --> 00:03:40,900 mas maaga, ang mga ay kinakatawan bilang structs. 63 00:03:40,900 --> 00:03:45,410 Kaya, hindi mo ma-access ang header na file mismo, ngunit magkakaroon ka ng gusto upang makakuha ng sa 64 00:03:45,410 --> 00:03:47,370 mga variable sa loob. 65 00:03:47,370 --> 00:03:48,170 >> OK. 66 00:03:48,170 --> 00:03:50,600 Kaya paano ko i-update namin ang impormasyon ng header? 67 00:03:50,600 --> 00:03:54,020 Well, mayroon muna naming makita kung kami kailangan upang baguhin ang anumang impormasyon mula sa 68 00:03:54,020 --> 00:03:58,480 ang infile, ang bakas, upang ang outfile, ang pasya ng hurado. 69 00:03:58,480 --> 00:04:00,250 Pagbabago ba ang anumang bagay sa kasong ito? 70 00:04:00,250 --> 00:04:04,320 Well, hindi talaga, dahil kami ay pagpunta na lang ang pagbabago ng kulay. 71 00:04:04,320 --> 00:04:07,550 Hindi namin pagpunta sa ma-pagbabago ng file laki, ang laki ng imahe, ang lapad, 72 00:04:07,550 --> 00:04:08,310 o ang taas. 73 00:04:08,310 --> 00:04:14,010 Kaya ikaw ay ang lahat ng karapatan para sa ngayon sa pamamagitan ng pagkopya lang sa bawat pixel. 74 00:04:14,010 --> 00:04:14,840 >> OK. 75 00:04:14,840 --> 00:04:20,720 Kaya tingnan natin kung paano namin talaga ngayon hayaan maaaring magbasa ng bawat pixel mula sa file. 76 00:04:20,720 --> 00:04:23,640 Ang isa pang I / O function na file ay darating sa pag-play - 77 00:04:23,640 --> 00:04:24,700 fread. 78 00:04:24,700 --> 00:04:28,440 Itong tumatagal sa isang pointer sa struct na maglalaman ng mga bytes na 79 00:04:28,440 --> 00:04:30,110 binabasa mo. 80 00:04:30,110 --> 00:04:31,890 Kaya binabasa mo sa na. 81 00:04:31,890 --> 00:04:36,090 At pagkatapos mong pumasa sa isang sukat, na kung saan ay ang laki ng bawat elemento na 82 00:04:36,090 --> 00:04:37,360 nais na basahin. 83 00:04:37,360 --> 00:04:40,640 Dito, ang pag-andar sizeof ay darating sa madaling-gamiting. 84 00:04:40,640 --> 00:04:45,570 Pagkatapos ay pumasa ka sa numero, na kumakatawan sa bilang ng mga elemento ng 85 00:04:45,570 --> 00:04:47,480 ang laki na basahin. 86 00:04:47,480 --> 00:04:51,180 At pagkatapos ay sa wakas, inptr, na ang file pointer na ikaw ay 87 00:04:51,180 --> 00:04:52,530 pagpunta sa basahin mula sa. 88 00:04:52,530 --> 00:04:58,650 Kaya lahat ng mga elementong iyon ay sa loob inptr at sila ay pagpunta sa data. 89 00:04:58,650 --> 00:05:01,660 >> Tingnan natin ang isang maliit na halimbawa. 90 00:05:01,660 --> 00:05:07,590 Kung gusto kong basahin sa data ng dalawang aso, well, ang maaari kong gawin ito sa isa sa dalawang paraan. 91 00:05:07,590 --> 00:05:15,250 Maaari ko alinman basahin sa dalawang bagay ng laki aso mula sa aking inptr, o maaari akong magbasa 92 00:05:15,250 --> 00:05:19,280 sa isa sa bagay ang laki ng dalawang aso. 93 00:05:19,280 --> 00:05:23,580 Kaya nakikita mo na depende sa paraan na magsagawa ka laki at numero, mo 94 00:05:23,580 --> 00:05:25,840 maaaring makabasa sa parehong bilang ng mga byte. 95 00:05:25,840 --> 00:05:28,720 96 00:05:28,720 --> 00:05:33,020 >> Ngayon Kaya, ni baguhin hayaan ang Kulay ng pixel bilang kailangan namin. 97 00:05:33,020 --> 00:05:37,320 Kung tumingin ka sa bmp.h muli, pagkatapos ay makikita mo na sa ibaba 98 00:05:37,320 --> 00:05:42,920 RGBTRIPLEs ay isa pang struct, kung saan ang mga ito ay binubuo ng tatlong bytes. 99 00:05:42,920 --> 00:05:49,220 Ang isa, rgbtBlue, rgbtGreen, at rgbtRed. 100 00:05:49,220 --> 00:05:52,480 Kaya bawat isa sa mga kumakatawan sa halaga ng asul, ang halaga ng berde, at ang 101 00:05:52,480 --> 00:05:57,250 halaga ng pulang loob ito pixel, kung saan ang bawat halaga ay kinakatawan ng isang 102 00:05:57,250 --> 00:05:58,670 hexadecimal numero. 103 00:05:58,670 --> 00:06:04,370 >> Kaya ff0000 ay magiging isang asul kulay, dahil ito napupunta mula sa bughaw, 104 00:06:04,370 --> 00:06:05,850 sa kulay berde, sa pula. 105 00:06:05,850 --> 00:06:09,300 At pagkatapos ang lahat ng f ay magiging puti. 106 00:06:09,300 --> 00:06:13,440 Hayaan ang kumuha ng isang pagtingin sa smiley.bmp, na mayroon ka sa iyong pamamahagi code. 107 00:06:13,440 --> 00:06:15,690 Kung buksan mo ito sa loob lamang ng isang imahe viewer, pagkatapos ikaw ay 108 00:06:15,690 --> 00:06:17,080 makita lamang ang isang pulang SMILEY. 109 00:06:17,080 --> 00:06:20,380 Ngunit pagkuha ng mas malalim na dive in, kami ay makita na ang istraktura 110 00:06:20,380 --> 00:06:22,340 ng ito ay isa lamang pixels. 111 00:06:22,340 --> 00:06:25,880 Mayroon kaming puti pixel, at pagkatapos ay pulang pixels. 112 00:06:25,880 --> 00:06:31,000 Ang puti, FFFFFF, at pagkatapos ang lahat ng mga pulang pixels ko ang kulay para sa iyo 113 00:06:31,000 --> 00:06:35,440 dito, at makikita mo na ang mga ito ay 0000ff. 114 00:06:35,440 --> 00:06:39,760 Zero asul, berde zero, at ang buong pula. 115 00:06:39,760 --> 00:06:45,350 At dahil SMILEY ay walong pixel na lapad, wala kaming anumang mga padding. 116 00:06:45,350 --> 00:06:47,360 Ayos lang. 117 00:06:47,360 --> 00:06:53,310 >> Kaya kung ako ay upang magtalaga ng iba't ibang mga halaga sa isang RGBTRIPLE at Nais kong 118 00:06:53,310 --> 00:06:58,350 gawin itong green, pagkatapos ay kung ano ang nais kong gawin ay Gusto ko magpahayag ng isang RGBTRIPLE, pinangalanan 119 00:06:58,350 --> 00:07:02,660 triple, at pagkatapos ay i-access ang bawat byte loob na struct ko 120 00:07:02,660 --> 00:07:04,030 maaaring gamitin ang tuldok operator. 121 00:07:04,030 --> 00:07:08,430 Kaya triple.rgbtBlue, maaari ko magtalaga na sa 0. 122 00:07:08,430 --> 00:07:13,460 Green ako maaaring italaga ito upang ganap na - sa anumang numero, talaga, sa pagitan ng 0 at ff. 123 00:07:13,460 --> 00:07:15,470 At pagkatapos ay pula, pupuntahan ko din ang masasabi 0. 124 00:07:15,470 --> 00:07:19,160 Kaya pagkatapos na nagbibigay sa akin ng isang kulay berdeng pixel. 125 00:07:19,160 --> 00:07:23,030 >> Susunod, paano kung gusto kong i-check ang halaga ng isang bagay? 126 00:07:23,030 --> 00:07:27,250 Kaya kong magkaroon ng isang bagay na sumusuri kung rgbtBlue halaga ang triple ay 127 00:07:27,250 --> 00:07:31,080 ff at pagkatapos ay i-print, "Sinusuwerte ako asul! ", bilang isang resulta. 128 00:07:31,080 --> 00:07:35,640 Ngayon, na hindi kinakailangang mangahulugan na ang pixel ay asul, tama? 129 00:07:35,640 --> 00:07:40,060 Dahil ang berde at pulang mga halaga ng pixel ni maaari ding magkaroon ng mga di-0 na mga halaga. 130 00:07:40,060 --> 00:07:43,470 Ang lahat na ito ay nangangahulugan na, at lahat na ito ay para sa pagsuri ay 131 00:07:43,470 --> 00:07:45,610 para sa buong bughaw na kulay. 132 00:07:45,610 --> 00:07:50,050 Ngunit ang lahat ng mga pixel maaari ring magkaroon ng bahagyang mga halaga ng kulay, tulad nito 133 00:07:50,050 --> 00:07:52,180 susunod na halimbawa dito. 134 00:07:52,180 --> 00:07:55,400 >> Ito ay isang maliit na mas mahirap na makita kung ano ang imahe ay ngayon. 135 00:07:55,400 --> 00:08:00,320 Mukhang Medyo mas katulad ng ito clue.bmp na bibigyan ka. 136 00:08:00,320 --> 00:08:03,600 Ngayon, pisikal, maaari mong malutas ito, dahil mayroong ng maraming pula, sa pamamagitan ng 137 00:08:03,600 --> 00:08:07,040 humahawak up ng isang pulang screen sa larawan sa gayon na ang iba pang mga kulay ay maaaring lumitaw. 138 00:08:07,040 --> 00:08:10,968 Kaya paano ko gayahin namin ito kasama c? 139 00:08:10,968 --> 00:08:15,640 Well, maaari naming alisin ang lahat ng mga pulang mula sa imahe ganap. 140 00:08:15,640 --> 00:08:21,870 At kaya bang gawin iyon gusto itinakda namin ang bawat pula halaga ng pixel upang 0. 141 00:08:21,870 --> 00:08:25,020 At nito ay ang imahen na hitsura ng kaunti bit na tulad nito, kung saan mayroon kaming walang pula 142 00:08:25,020 --> 00:08:26,300 kahit ano pa man. 143 00:08:26,300 --> 00:08:29,390 >> Maaari naming makita ang mga nakatagong isang mensahe malinaw na kaunti ang nalalaman ngayon. 144 00:08:29,390 --> 00:08:31,730 Ito ay isa pang SMILEY mukha. 145 00:08:31,730 --> 00:08:33,870 O siguro na maaari kaming gumamit ng ibang pamamaraan. 146 00:08:33,870 --> 00:08:36,480 Siguro, maaari naming kilalanin lahat ng mga pulang pixels - 147 00:08:36,480 --> 00:08:41,100 iyon ay, ang lahat ng mga pixel sa 0 asul, 0 berde, at pulang 0 - 148 00:08:41,100 --> 00:08:43,169 at baguhin ang mga sa puti. 149 00:08:43,169 --> 00:08:45,470 At ang aming larawan ay maaaring tumingin isang bagay na katulad nito. 150 00:08:45,470 --> 00:08:48,250 Ang isang maliit na bit mas madaling makita. 151 00:08:48,250 --> 00:08:51,170 >> Mayroong maraming iba pang mga paraan upang alisan ng takip ang lihim na mensahe pati na rin, 152 00:08:51,170 --> 00:08:53,730 pagharap sa mga pagmamanipula ng kulay. 153 00:08:53,730 --> 00:08:57,050 Siguro maaari mong gamitin ang isa sa mga pamamaraan sa na nabanggit ko sa itaas. 154 00:08:57,050 --> 00:08:59,600 At Bukod pa rito, maaaring gusto upang mapahusay ang ilang mga kulay 155 00:08:59,600 --> 00:09:02,620 at dalhin ang mga out. 156 00:09:02,620 --> 00:09:06,190 >> Kaya ngayon na nagbago na namin ang pixel kulay, susunod kailangan lang namin isulat ang mga ito 157 00:09:06,190 --> 00:09:08,500 in sa scanline, pixel sa pamamagitan ng pixel. 158 00:09:08,500 --> 00:09:11,860 At pa ulit, makikita mo gusto upang tumingin pabalik sa copy.c, kung hindi mo pa nakopya 159 00:09:11,860 --> 00:09:18,170 ito nagagawa, at tumingin sa fwrite function, na kumukuha ng data, ang isang pointer 160 00:09:18,170 --> 00:09:23,230 sa struct na naglalaman ng mga byte na binabasa mo mula sa, ang laki ng 161 00:09:23,230 --> 00:09:26,610 ang mga item, ang bilang ng mga item, at pagkatapos ay ang outptr - 162 00:09:26,610 --> 00:09:29,450 ang patutunguhan ng mga file na iyon. 163 00:09:29,450 --> 00:09:34,010 >> Pagkatapos mong isulat sa pixels, makakakuha ka Mayroon din na magsulat sa padding. 164 00:09:34,010 --> 00:09:34,970 Ano ang padding? 165 00:09:34,970 --> 00:09:38,670 Well, ang bawat rgbt pixel ay tatlong bytes mahaba. 166 00:09:38,670 --> 00:09:43,670 Ngunit, ang scanline para sa isang bitmap imahe ay dapat na multiple ng apat na bytes. 167 00:09:43,670 --> 00:09:47,650 At kung ang bilang ng mga pixels ay hindi isang maramihang ng apat na, pagkatapos ay kailangan namin upang magdagdag ng 168 00:09:47,650 --> 00:09:48,880 ito padding. 169 00:09:48,880 --> 00:09:51,420 Padding ay lamang na kinakatawan ng 0s. 170 00:09:51,420 --> 00:09:54,380 Kaya, paano ko isulat namin, o basahin ito? 171 00:09:54,380 --> 00:09:59,280 Well, ito ay lumiliko out na hindi mo magagawa talaga fread padding, ngunit maaari kang 172 00:09:59,280 --> 00:10:00,970 kalkulahin ito. 173 00:10:00,970 --> 00:10:04,400 >> Sa kasong ito, ang bakas at ang hatol ng hurado magkaroon ng parehong lapad, kaya ang 174 00:10:04,400 --> 00:10:05,910 padding ay pareho. 175 00:10:05,910 --> 00:10:09,370 At ang padding, pati na makikita mo sa copy.c, ay kinakalkula 176 00:10:09,370 --> 00:10:11,790 may formula sa ibaba - 177 00:10:11,790 --> 00:10:16,690 bi.biWidth beses sizeof (RGBTRIPLE) habilin bigyan kami ng kung gaano karaming mga byte ang bmp 178 00:10:16,690 --> 00:10:18,280 May sa bawat hilera. 179 00:10:18,280 --> 00:10:21,890 Mula doon, ang modulos at subtractions na may 4 na maaaring kalkulahin kung paano 180 00:10:21,890 --> 00:10:25,610 dapat na idinagdag maraming mga byte upang ang ang maramihang ng bytes sa 181 00:10:25,610 --> 00:10:27,250 bawat hilera ay apat. 182 00:10:27,250 --> 00:10:30,490 >> Ngayon na mayroon kami ang formula para sa kung magkano ang padding namin kailangan, ngayon 183 00:10:30,490 --> 00:10:31,610 maaari naming isulat ito. 184 00:10:31,610 --> 00:10:34,080 Ngayon, nabanggit ko bago, padding lamang ang 0s. 185 00:10:34,080 --> 00:10:39,730 Kaya sa kasong iyon, kami ay lamang ng paglalagay isang pansamantalang trabaho, sa kasong ito ng 0, sa aming 186 00:10:39,730 --> 00:10:41,710 outptr - ang aming outfile. 187 00:10:41,710 --> 00:10:47,530 Sa gayon ay maaari lamang maging fputc 0, kuwit outptr. 188 00:10:47,530 --> 00:10:52,400 >> Kaya, habang nagsi-pagbabasa namin sa aming file, file I / O ay pinananatiling track ng aming 189 00:10:52,400 --> 00:10:57,440 posisyon sa mga file na iyon na may isang bagay tinatawag na tagapagpahiwatig posisyon file. 190 00:10:57,440 --> 00:10:59,350 Isipin ito bilang isang cursor. 191 00:10:59,350 --> 00:11:03,550 Talaga, paglago nito sa tuwing na namin fread, ngunit mayroon kaming 192 00:11:03,550 --> 00:11:05,671 ng kontrol sa ito, masyadong. 193 00:11:05,671 --> 00:11:11,030 >> Upang ilipat ang tagapagpahiwatig posisyon file, maaari mong gamitin ang pag-andar fseek. 194 00:11:11,030 --> 00:11:15,600 Saan ang inptr ay kumakatawan sa mga file pointer na naghahanap ka sa, ang 195 00:11:15,600 --> 00:11:20,370 halaga ay ang bilang ng mga byte na sa iyo nais upang ilipat ang cursor, at pagkatapos ay mula sa 196 00:11:20,370 --> 00:11:23,470 na nauugnay sa mga reference point mula sa kung saan ang iyong cursor ay. 197 00:11:23,470 --> 00:11:26,770 Kung pumasa ka sa SEEK_CUR, na ay kumakatawan sa kasalukuyang 198 00:11:26,770 --> 00:11:28,100 posisyon sa file. 199 00:11:28,100 --> 00:11:31,020 O maaari mong gamitin ang ilang mga iba pang mga parameter. 200 00:11:31,020 --> 00:11:35,400 Kaya, maaari naming nais na gumamit ng fseek upang laktawan sa ibabaw ng padding ng file sa. 201 00:11:35,400 --> 00:11:39,410 At muli, kung ikaw ay natigil, mayroong isang halimbawa ng na sa copy.c. 202 00:11:39,410 --> 00:11:43,260 >> Kaya ngayon binuksan na namin ang file, ang tanda, at ang hatol ng hurado. 203 00:11:43,260 --> 00:11:46,450 Na-update namin ang header impormasyon para sa ang aming pasya ng hurado, dahil bawat 204 00:11:46,450 --> 00:11:48,730 bitmap na ay nangangailangan ng header. 205 00:11:48,730 --> 00:11:52,280 Pagkatapos ay nabasa namin sa mga bakas ng scanline, pixel sa pamamagitan ng pixel, pagbabago 206 00:11:52,280 --> 00:11:55,210 bawat kulay bilang kinakailangan, at pagsusulat ng mga papunta sa 207 00:11:55,210 --> 00:11:57,340 pasya ng hurado, pixel sa pamamagitan ng pixel. 208 00:11:57,340 --> 00:12:01,550 Sa sandaling binuksan mo ang pasya ng hurado, maaari mong makita kung sino ang salarin, o kung ano ang lihim 209 00:12:01,550 --> 00:12:02,850 mensahe ay. 210 00:12:02,850 --> 00:12:05,550 Ang pangalan ko ay Zamyla, at ito ay sinong may kagagawan. 211 00:12:05,550 --> 00:12:12,864