1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [Daqq tal-mużika] 3 00:00:12,470 --> 00:00:13,210 >> ROB BOWDEN: Hi. 4 00:00:13,210 --> 00:00:16,870 Jien Rob u let daqs tal- up din il-problema. 5 00:00:16,870 --> 00:00:20,990 Allura aħna qed tmur biex tibda bil copy.c bħala template, imma aħna qed tmur biex tkun 6 00:00:20,990 --> 00:00:23,340 tagħmel pjuttost ftit tibdiliet. 7 00:00:23,340 --> 00:00:27,570 >> Issa naraw aħna qed immedjatament jagħmlu bidla fejn aħna qed m'għadhomx verifika 8 00:00:27,570 --> 00:00:31,560 għall RXC tagħna ma daqs 3, iżda issa aħna qed iċċekkjar rc ma ugwali 4. 9 00:00:31,560 --> 00:00:34,670 Peress li aħna rridu wkoll li jinkludu, b'mod Minbarra l-fil-fajl u barra files 10 00:00:34,670 --> 00:00:39,550 argumenti, f li se jkun dan fattur li bih aħna qed skalar. 11 00:00:39,550 --> 00:00:45,430 >> Allura ladarba aħna żgur ta 'dak, irridu tuża s scan f li jikkonvertu l-sekwenza 12 00:00:45,430 --> 00:00:49,030 argv1 għal float. 13 00:00:49,030 --> 00:00:51,330 U aħna qed tmur biex jaħżnu dan il-fattur. 14 00:00:51,330 --> 00:00:55,180 Dan il-karattru addizzjonali qed tagħmel ċert li aħna ma attwalment jidħlu 15 00:00:55,180 --> 00:00:59,200 xi ħaġa bħal 1.4 ABC fil-linja tal-kmand. 16 00:00:59,200 --> 00:01:02,960 >> Issa aħna qed tmur biex joħolqu xi psewdonomi peress RV2 u RV3 mhumiex 17 00:01:02,960 --> 00:01:04,310 ismijiet utli ħafna. 18 00:01:04,310 --> 00:01:07,660 Aħna, minflok, se sejħa minnhom fil-fajl u l-fajl. 19 00:01:07,660 --> 00:01:11,580 Issa aħna qed tmur biex tiżgura li fattur tagħna kien effettivament valida. 20 00:01:11,580 --> 00:01:16,330 Mela jekk fattur huwa inqas minn jew ugwali għal żero jew iżjed minn 100, allura kif kull 21 00:01:16,330 --> 00:01:19,660 l-spec, għandna tirrifjuta dak il-fattur. 22 00:01:19,660 --> 00:01:23,890 >> Meta aħna żgur huwa tajjeb, issa nistgħu tiftaħ il-fajl n, u għandna biex jagħmlu 23 00:01:23,890 --> 00:01:25,950 żgur li nfetħet b'suċċess. 24 00:01:25,950 --> 00:01:28,630 Jekk ma, li se terġa 'lura null. 25 00:01:28,630 --> 00:01:30,390 Aħna ser tiftaħ il-fajl out. 26 00:01:30,390 --> 00:01:33,420 U għal darb'oħra, irridu li jivverifika sabiex ikun ċert li huwa fetaħ b'suċċess. 27 00:01:33,420 --> 00:01:37,270 U jekk ma tiftaħ b'suċċess, allura aħna wkoll bżonn biex tkun ċert li tagħlaq 28 00:01:37,270 --> 00:01:40,870 il-fajl n li oriġinarjament b'suċċess jinfetaħ, jew inkella għandna 29 00:01:40,870 --> 00:01:42,600 memorja nixxija. 30 00:01:42,600 --> 00:01:46,350 >> Allura issa aħna qed tmur biex taqra fil-Bitmap header fajl u info Bitmap 31 00:01:46,350 --> 00:01:48,890 header mill-fajl n. 32 00:01:48,890 --> 00:01:52,360 Aħna qed tmur biex tiżgura li l- fajl n kien Bitmap valida. 33 00:01:52,360 --> 00:01:52,640 OK. 34 00:01:52,640 --> 00:01:55,100 >> Allura issa aħna qed tmur biex tibda tagħmel xi bidliet. 35 00:01:55,100 --> 00:01:58,840 Allura għaliex aħna qed tmur biex jinbidlu affarijiet, aħna l-ewwel trid tiftakar il- 36 00:01:58,840 --> 00:02:01,510 wisa antika tal-fajl n. 37 00:02:01,510 --> 00:02:05,160 Irridu niftakru l-ikkuttunar antika ta ' il-fajl n jużaw l-istess kalkolu 38 00:02:05,160 --> 00:02:06,990 minn copy.c. 39 00:02:06,990 --> 00:02:09,840 >> U issa aħna qed tmur għall-bidla l-header info Bitmap. 40 00:02:09,840 --> 00:02:13,630 U hekk aħna qed multiplikazzjoni kemm il-wisa ' u l-għoli mill-fattur peress 41 00:02:13,630 --> 00:02:15,750 dak hu li aħna qed skalar minn. 42 00:02:15,750 --> 00:02:18,420 Aħna ser tiddetermina l- ikkuttunar ġdid tal-fajl mill- 43 00:02:18,420 --> 00:02:21,140 jużaw il-wisa ġdid. 44 00:02:21,140 --> 00:02:27,330 U aħna qed tmur biex jiddeterminaw il-ġdid daqs tal-immaġini li jużaw in-numru ta ' 45 00:02:27,330 --> 00:02:31,610 bytes fir-ringiela waħda li se jkun in-numru ta 'pixels li ringiela 46 00:02:31,610 --> 00:02:35,960 darbiet id-daqs ta 'pixel flimkien mal- Numru ta 'bytes ta' padding fl-aħħar 47 00:02:35,960 --> 00:02:40,310 ta 'dik ringiela, u multiplikazzjoni kollu li bin-numru ta 'ringieli li għandna. 48 00:02:40,310 --> 00:02:43,800 Allura dak in-numru ta 'bytes għandna fil-image data tagħna. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize issa se jkun in-numru ta 'bytes fil-immaġni beta tagħna plus 50 00:02:48,190 --> 00:02:49,350 id-daqs tal headers tagħna. 51 00:02:49,350 --> 00:02:53,910 Allura plus daqs tal-fajl Bitmap header u d-daqs tal-header info Bitmap. 52 00:02:53,910 --> 00:02:54,510 OK. 53 00:02:54,510 --> 00:02:56,440 Allura dak għal headers tagħna. 54 00:02:56,440 --> 00:02:59,030 Aħna jista 'jikteb il-kap fajl u header info out tagħna 55 00:02:59,030 --> 00:03:01,590 fajl, u aħna qed tajba. 56 00:03:01,590 --> 00:03:03,800 >> Issa wasal iż-żmien biex jibdew attwalment miktub l-pixel 57 00:03:03,800 --> 00:03:05,120 data għall-fajl out. 58 00:03:05,120 --> 00:03:10,460 Aħna qed tmur biex tiddikjara buffer mid-daqs RGB wisa qodma jittripplika, u aħna 59 00:03:10,460 --> 00:03:13,790 ser tiddikjara varjabbli imsejjaħ numb ringiela, li hija aħna qed tmur biex 60 00:03:13,790 --> 00:03:15,640 stabbiliti inizjalment ugwali għal negattiva 1. 61 00:03:15,640 --> 00:03:19,090 Aħna ser tara li aħna qed tmur biex tkun qed tuża li biex iżżomm rekord ta 'dak 62 00:03:19,090 --> 00:03:22,640 ringiela għandna attwalment mgħobbija fis dan buffer. 63 00:03:22,640 --> 00:03:23,290 OK. 64 00:03:23,290 --> 00:03:28,750 >> Allura issa b'differenza mill-edizzjoni standard, minflok mtennija fuq fil-fil 65 00:03:28,750 --> 00:03:32,900 file, aħna qed tmur biex jtenni fuq kull ringiela fil-fajl out u l-figura 66 00:03:32,900 --> 00:03:38,130 li ringiela fil-fajl li rridu post f'din il-filliera fil-fajl out. 67 00:03:38,130 --> 00:03:44,930 Allura mtennija fillieri kollha fit-out fajl tuża l-għoli ġdid, aħna qed ewwel 68 00:03:44,930 --> 00:03:48,890 ser tiddetermina l-ringiela fil-qodma fajl aħna qed tmur għall-użu, li aħna qed 69 00:03:48,890 --> 00:03:53,560 se tagħmel billi dan attwali ringiela diviż bil-fattur. 70 00:03:53,560 --> 00:03:58,000 Allura li għaddej biex tagħtina l-ringiela fil-fajl qodma li rridu. 71 00:03:58,000 --> 00:04:03,310 >> Mela issa jekk numb ringiela ma y qodma mhux ugwali, aħna qed tmur biex għandek taqra r-ringiela 72 00:04:03,310 --> 00:04:05,940 li aħna rridu fis cur buffer ringiela tagħna. 73 00:04:05,940 --> 00:04:07,700 Allura kif huma aħna se tagħmel dan? 74 00:04:07,700 --> 00:04:11,650 L-ewwel, aħna qed tmur biex insemmu l- pożizzjoni li jibda dak ringiela fil- 75 00:04:11,650 --> 00:04:13,100 fajl oriġinali. 76 00:04:13,100 --> 00:04:18,630 Sabiex il-pożizzjoni se tkun passat kollha ta 'headers tagħna u 77 00:04:18,630 --> 00:04:21,589 ringieli y qodma issa li għaddew. 78 00:04:21,589 --> 00:04:23,880 >> U hekk kif ħafna bytes huma ringiela waħda? 79 00:04:23,880 --> 00:04:28,740 Għal darb'oħra, id-daqs tal-RGB drabi tripla qodma wisa plus ikkuttunar qodma, b'tali mod li l- 80 00:04:28,740 --> 00:04:30,640 numru ta 'bytes fir-ringiela waħda. 81 00:04:30,640 --> 00:04:33,680 U rridu skip ringieli passat y qodma. 82 00:04:33,680 --> 00:04:37,580 Allura aħna qed tmur biex f tfittex u aħna jużaw tfittex stabbiliti biex jibdew mill- 83 00:04:37,580 --> 00:04:39,100 bidu ta 'fajl. 84 00:04:39,100 --> 00:04:42,740 Aħna ser f jfittex li din il-pożizzjoni fil-fajl, it-tqegħid us fil- 85 00:04:42,740 --> 00:04:46,500 bidu tar-ringiela rridu li jaqra fis buffer tagħna. 86 00:04:46,500 --> 00:04:48,510 >> Aħna ser jistabbilixxu ringiela numb ugwali għal y qodma. 87 00:04:48,510 --> 00:04:53,080 Allura issa jekk aħna loop lura u rridu li juża l-istess ringiela fil-fajl out tagħna, 88 00:04:53,080 --> 00:04:55,970 allura aħna ma tkunx qed tmur biex taqra huwa fl-ġdid bla bżonn. 89 00:04:55,970 --> 00:04:59,310 Allura verament, numb ringiela hija biss ottimizzazzjoni. 90 00:04:59,310 --> 00:05:05,500 >> Fl-aħħarnett, aħna qed tmur biex taqra fil- ringiela attwali tal-RGB wisa qodma jittripplika 91 00:05:05,500 --> 00:05:08,040 li rridu mill-fajl oriġinali. 92 00:05:08,040 --> 00:05:12,270 Allura issa ringiela cur fih l-pixels minn l-inkartament oriġinali li rridu 93 00:05:12,270 --> 00:05:14,200 tikteb fil-fajl out. 94 00:05:14,200 --> 00:05:18,960 Allura issa, bħad fuq, minflok mtennija fuq il-fajl qodma, għandna bżonn 95 00:05:18,960 --> 00:05:22,560 li jtenni fuq il-fillieri fajls ġodda. 96 00:05:22,560 --> 00:05:27,450 Well hawnhekk, minflok mtennija fuq kollha tal-pixels qodma li fir-ringiela kur, 97 00:05:27,450 --> 00:05:31,210 irridu li jtenni fuq kollha ta 'l- pixels fil-fajl ġdid tagħna f'dan il- 98 00:05:31,210 --> 00:05:32,480 partikolari filliera. 99 00:05:32,480 --> 00:05:34,140 >> Għaliex irridu li tagħmel dan? 100 00:05:34,140 --> 00:05:38,960 Għaliex naraw hawnhekk li aħna mhux qed attwalment neċessarjament użu kollha tal- 101 00:05:38,960 --> 00:05:41,020 pixels fil-fajl oriġinali. 102 00:05:41,020 --> 00:05:46,630 Għaliex jekk aħna qed tiċkien, nistgħu fil-fatt tixtieq li skip il-pixels. 103 00:05:46,630 --> 00:05:48,090 U naraw li dan - 104 00:05:48,090 --> 00:05:49,690 x diviż bil-fattur - 105 00:05:49,690 --> 00:05:55,620 qrib mirja up here fejn ngħidu y diviż bil-fattur biex insemmu li 106 00:05:55,620 --> 00:06:02,480 il-filliera y-th qodma jikkorrispondi għal il-filliera 'y th f'dan fajl ġdid. 107 00:06:02,480 --> 00:06:05,880 >> Issa aħna qed tmur biex jiktbu kollha dawn pixels mir-ringiela qodma 108 00:06:05,880 --> 00:06:07,440 fis ringiela ġdida tagħna. 109 00:06:07,440 --> 00:06:10,890 Ladarba aħna ghamilt li, għandna bżonn biss tpoġġi l-padding fl-aħħar tal ringiela tagħna 110 00:06:10,890 --> 00:06:15,540 u aħna ser loop lura u tkompli għal kollha ta 'l-ringieli fil-fajl ġdid tagħna. 111 00:06:15,540 --> 00:06:19,390 Fl-aħħar, għandna bżonn li tagħlaq tagħna qodma fajl, agħlaq fajl ġdid tagħna, u r-ritorn 112 00:06:19,390 --> 00:06:21,540 zero għaliex kollox marru multa. 113 00:06:21,540 --> 00:06:24,220 >> Jisimni Rob u dan kien riċess. 114 00:06:24,220 --> 00:06:29,184 >> [Daqq tal-mużika]