1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [Muzikavimo] 3 00:00:12,470 --> 00:00:13,210 >> ROB BOWDEN: Sveiki. 4 00:00:13,210 --> 00:00:16,870 Aš Rob ir tegul dydis iki šios problemos. 5 00:00:16,870 --> 00:00:20,990 Taigi, mes ketiname pradėti copy.c kaip šablonas, bet mes ketiname būti 6 00:00:20,990 --> 00:00:23,340 padaryti nemažai pakeitimų. 7 00:00:23,340 --> 00:00:27,570 >> Dabar mes matome, mes iš karto priėmimo keisti, kai mes nebe tikrinti 8 00:00:27,570 --> 00:00:31,560 už mūsų rxc nėra lygi 3, o dabar mes patikrinti rc nėra lygi 4. 9 00:00:31,560 --> 00:00:34,670 Kadangi mes taip pat norite įtraukti, ir papildymas į failą ir iš failų 10 00:00:34,670 --> 00:00:39,550 argumentai, f, kuri bus tai Veiksnys, kuriuo mes mastelio. 11 00:00:39,550 --> 00:00:45,430 >> Taigi, kai mes tikrai to norime naudoti ų nuskaitymo f konvertuoti eilutę 12 00:00:45,430 --> 00:00:49,030 argv1 į avansinę. 13 00:00:49,030 --> 00:00:51,330 Ir mes ketiname saugoti kad veiksnys. 14 00:00:51,330 --> 00:00:55,180 Šis papildomas pobūdis yra užtikrinti kad mes ne faktiškai neatvykstant 15 00:00:55,180 --> 00:00:59,200 kažkas panašaus į 1,4 ABC į komandų eilutę. 16 00:00:59,200 --> 00:01:02,960 >> Dabar mes ketiname sukurti keletą slapyvardžius nuo RV2 ir RV3 nėra 17 00:01:02,960 --> 00:01:04,310 labai naudinga vardai. 18 00:01:04,310 --> 00:01:07,660 Mes, priešingai, ketinate skambinti juos į failą ir iš failo. 19 00:01:07,660 --> 00:01:11,580 Dabar mes ketiname užtikrinti, kad mūsų veiksnys buvo iš tikrųjų galioja. 20 00:01:11,580 --> 00:01:16,330 Taigi, jei koeficientas yra mažesnis arba lygus nulinis arba didesnis nei 100, tada kaip už 21 00:01:16,330 --> 00:01:19,660 spec, turėtume atmesti šis veiksnys. 22 00:01:19,660 --> 00:01:23,890 >> Kai mes esame tikri, kad tai gerai, dabar mes galime atidaryti n failą, ir mes turime padaryti 23 00:01:23,890 --> 00:01:25,950 įsitikinkite, kad ji buvo sėkmingai atidarytas. 24 00:01:25,950 --> 00:01:28,630 Jei ne, tai sugrįš null. 25 00:01:28,630 --> 00:01:30,390 Mes ketiname atidaryti iš failo. 26 00:01:30,390 --> 00:01:33,420 Ir vėl, mes norime patikrinti, kad įsitikinkite, kad jis sėkmingai atidarė. 27 00:01:33,420 --> 00:01:37,270 Ir jei jis nebuvo sėkmingai atidaryti, tada mes taip pat turime būti tikri, kad uždaryti 28 00:01:37,270 --> 00:01:40,870 n failas, kuris iš pradžių sėkmingai atidarytas, ar dar turime 29 00:01:40,870 --> 00:01:42,600 Atminties nutekėjimas. 30 00:01:42,600 --> 00:01:46,350 >> Taigi dabar mes ketiname skaityti bitmap failas antraštės ir rastras informacija 31 00:01:46,350 --> 00:01:48,890 antraštės iš n failą. 32 00:01:48,890 --> 00:01:52,360 Mes ketiname užtikrinti, kad n failas galioja rastras. 33 00:01:52,360 --> 00:01:52,640 Gerai. 34 00:01:52,640 --> 00:01:55,100 >> Taigi dabar mes ketiname pradėti padaryti keletą pakeitimų. 35 00:01:55,100 --> 00:01:58,840 Todėl, kad mes ketiname būti pakeisti viskas, mes pirmiausia norime prisiminti 36 00:01:58,840 --> 00:02:01,510 Esu plotis n failą. 37 00:02:01,510 --> 00:02:05,160 Mes norime prisiminti senus padding n failas taikant tuos pačius apskaičiavimo 38 00:02:05,160 --> 00:02:06,990 nuo copy.c. 39 00:02:06,990 --> 00:02:09,840 >> Ir dabar mes ketiname pakeisti rastras informacija antraštės. 40 00:02:09,840 --> 00:02:13,630 Ir todėl mes dauginant tiek plotį ir iš kintamojo aukštis nuo 41 00:02:13,630 --> 00:02:15,750 kad tai, ką mes mastelio iki. 42 00:02:15,750 --> 00:02:18,420 Mes ketiname nustatyti nauja padding iki failo 43 00:02:18,420 --> 00:02:21,140 naudojant naują plotį. 44 00:02:21,140 --> 00:02:27,330 Ir mes ketiname nustatyti naują paveikslėlio dydis, naudojant skaičiaus 45 00:02:27,330 --> 00:02:31,610 baitų vienoje eilutėje kuri ketina būti pikselių tos eilės numeris 46 00:02:31,610 --> 00:02:35,960 kartų iš pikselio dydis plius baitų skaičius nuo kamšalu pabaigoje 47 00:02:35,960 --> 00:02:40,310 iš tos eilutės ir dauginant visa tai iš eilučių, kad mes turime skaičių. 48 00:02:40,310 --> 00:02:43,800 Štai baitų skaičius mes turime mūsų vaizdo duomenų. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize dabar bus skaičius baitų mūsų vaizdo beta plius 50 00:02:48,190 --> 00:02:49,350 mūsų antraščių dydis. 51 00:02:49,350 --> 00:02:53,910 Taigi, plius dydis bitmap failo antraštę ir dydis bitmap info antraštėje. 52 00:02:53,910 --> 00:02:54,510 Gerai. 53 00:02:54,510 --> 00:02:56,440 Štai jis mūsų antraštes. 54 00:02:56,440 --> 00:02:59,030 Mes galime parašyti failą galvą ir informacija antraštę mūsų laikas 55 00:02:59,030 --> 00:03:01,590 failą ir mes geri. 56 00:03:01,590 --> 00:03:03,800 >> Dabar atėjo laikas pradėti realiai raštu pikselių 57 00:03:03,800 --> 00:03:05,120 duomenis į iš failo. 58 00:03:05,120 --> 00:03:10,460 Mes ketiname paskelbti apie dydžio buferį Esu plotis RGB triviečiai, ir mes 59 00:03:10,460 --> 00:03:13,790 ketina paskelbti kintamąjį vadinamą eilutėje nutirpęs, kuri mes ketiname 60 00:03:13,790 --> 00:03:15,640 pradžių prilyginta neigiamas 1. 61 00:03:15,640 --> 00:03:19,090 Mes matome, kad mes ketiname būti naudojant kad, siekiant stebėti, ką 62 00:03:19,090 --> 00:03:22,640 eilė šiuo metu jau pakrautas į šį buferinį tarpsnį. 63 00:03:22,640 --> 00:03:23,290 Gerai. 64 00:03:23,290 --> 00:03:28,750 >> Taigi dabar, skirtingai nei standartinės versijos, vietoj iteravimu per ne vėliau kaip per 65 00:03:28,750 --> 00:03:32,900 failą, mes ketiname pakartoti per kiekvieną eilutė iš failo ir išsiaiškinti 66 00:03:32,900 --> 00:03:38,130 kuri eilutė faile norime vieta šioje eilutėje į iš failo. 67 00:03:38,130 --> 00:03:44,930 Taigi iteravimu per visas eilutes laikas failą naudojant naują aukštį, mes pirmą kartą 68 00:03:44,930 --> 00:03:48,890 ketina nustatyti eilutę metai failą, mes ketiname naudoti, kas mes 69 00:03:48,890 --> 00:03:53,560 ketina padaryti pradėdami vartoti šį srovę eilutė, padalytą iš koeficiento. 70 00:03:53,560 --> 00:03:58,000 Taigi, kas vyksta mums eilutę senas failas, kad mes norime. 71 00:03:58,000 --> 00:04:03,310 >> Taigi dabar, jei eilutė nutirpęs nėra vienodas senas y, mes ketiname turėti skaityti eilutę 72 00:04:03,310 --> 00:04:05,940 kad mes norime į mūsų Manevrin eilės buferio. 73 00:04:05,940 --> 00:04:07,700 Taigi, kaip mes ketiname daryti? 74 00:04:07,700 --> 00:04:11,650 Pirma, mes ketiname išsiaiškinti, pozicija, kuris prasideda tą eilutę 75 00:04:11,650 --> 00:04:13,100 originalus failas. 76 00:04:13,100 --> 00:04:18,630 Taigi, kad padėtis bus pro visus mūsų antraštes ir 77 00:04:18,630 --> 00:04:21,589 dabar praeities senų y eilutės. 78 00:04:21,589 --> 00:04:23,880 >> Ir taip, kiek baitų yra vienoje eilutėje? 79 00:04:23,880 --> 00:04:28,740 Vėlgi, dydis iš RGB triviečiai kartų metai plotis plius sena apdaila, todėl tai 80 00:04:28,740 --> 00:04:30,640 baitų skaičius į vieną eilutę. 81 00:04:30,640 --> 00:04:33,680 Ir mes norime praleisti praeities senus y eilutes. 82 00:04:33,680 --> 00:04:37,580 Taigi, mes ketiname f kreiptis ir mes naudojant siekti rinkinys pradėti nuo 83 00:04:37,580 --> 00:04:39,100 pradžioje failą. 84 00:04:39,100 --> 00:04:42,740 Mes ketiname f kreiptis į šią poziciją faile, tad su mumis 85 00:04:42,740 --> 00:04:46,500 pradedant nuo eilės mes norime skaityti į mūsų buferis. 86 00:04:46,500 --> 00:04:48,510 >> Mes ketiname sukurti eilutę nutirpęs lygi seno y. 87 00:04:48,510 --> 00:04:53,080 Taigi dabar, jei mes kilpa atgal ir mes norime naudoti tą patį eilės mūsų iš failo 88 00:04:53,080 --> 00:04:55,970 tada mes neketiname skaityti ji vėl be reikalo. 89 00:04:55,970 --> 00:04:59,310 Taigi tikrai, eilutė nutirpęs yra tiesiog optimizavimas. 90 00:04:59,310 --> 00:05:05,500 >> Galiausiai, mes ketiname skaityti į dabartinė eilutė senas plotis RGB patrigubėja 91 00:05:05,500 --> 00:05:08,040 kad mes norime iš originalaus failo. 92 00:05:08,040 --> 00:05:12,270 Taigi dabar dab eilutėje yra taškų nuo originalaus failo, kad mes norime 93 00:05:12,270 --> 00:05:14,200 rašyti į iš failo. 94 00:05:14,200 --> 00:05:18,960 Taigi dabar, tiesiog norėčiau pirmiau, vietoj Iteracja ant senos bylos, mums reikia 95 00:05:18,960 --> 00:05:22,560 ją pakartoti per naujus failus eilučių. 96 00:05:22,560 --> 00:05:27,450 Na čia vietoj Iteracja virš visų senų pikselių, kad dab eilės 97 00:05:27,450 --> 00:05:31,210 mes norime pakartoti per visus pikselių mūsų naują failą šis 98 00:05:31,210 --> 00:05:32,480 pirma eilutė. 99 00:05:32,480 --> 00:05:34,140 >> Kodėl mes norime padaryti? 100 00:05:34,140 --> 00:05:38,960 Nes matome, kad čia mes ne iš tikrųjų nebūtinai naudojant visus 101 00:05:38,960 --> 00:05:41,020 pikselių originalaus failo. 102 00:05:41,020 --> 00:05:46,630 Nes jei mes mažėja, mes galime tikrai nori praleisti taškai. 103 00:05:46,630 --> 00:05:48,090 Ir mes matome, kad tai - 104 00:05:48,090 --> 00:05:49,690 x padalytą veiksnys - 105 00:05:49,690 --> 00:05:55,620 glaudžiai veidrodėliai čia, jei mes sakome, y padalytą iš koeficiento, išsiaiškinti, kad 106 00:05:55,620 --> 00:06:02,480 senas y oji eilutė atitinka y-tasis eilutė šioje naujoje byloje. 107 00:06:02,480 --> 00:06:05,880 >> Dabar mes ketiname rašyti visus Šie taškai iš senojo eilės 108 00:06:05,880 --> 00:06:07,440 į mūsų naują eilutę. 109 00:06:07,440 --> 00:06:10,890 Kai mes padarėme, kad mes turime tik įdėti padding ne mūsų eilės pabaigos 110 00:06:10,890 --> 00:06:15,540 ir mes kilpą atgal ir tęsti visi mūsų naują failą eilučių. 111 00:06:15,540 --> 00:06:19,390 Pabaigoje mes reikia uždaryti mūsų senas failą, uždarykite mūsų naują failą ir grąžinimas 112 00:06:19,390 --> 00:06:21,540 nulis, nes viskas buvo gerai. 113 00:06:21,540 --> 00:06:24,220 >> Mano vardas yra Rob ir tai buvo pertrauką. 114 00:06:24,220 --> 00:06:29,184 >> [Muzikavimo]