[Mūzikas atskaņošanai] ROB Bowden: Sveiki, es esmu Rob, pieņemsim izmēģināt šo par izmēru. Tātad, mēs atkal sāksim ar būtībā kopija copy.c, un veikt dažas izmaiņas. Ņemiet uzreiz mēs redzam izmaiņas, ja nevis pārbaudīt, vai argc nav vienāds 3, mēs gribam, lai pārbaudītu ja argc nav vienāds ar 4, jo Tagad mēs esam ne tikai veikt kādā INFILE un outfile, bet mēs esam arī uzņemot n, kas ir summa, ko mēs esam mērogošana oriģinālo attēlu,. Pēc tam, kad mēs esam pārliecināti, ka mēs varam vienkārši pārvērst n līdz veselam skaitlim, izmantojot atoi. Tātad, tagad mēs ejam, lai radītu dažas pseidonīmi, zvaniet argv 2 INFILE, un argv 3 outfile, jo argv 2 un argv 3 nav ļoti noderīgi nosaukumi. Tagad mēs vēlamies pārbaudīt, lai pārliecinātos, ka n robežās, mēs sagaidām, lai spec nosaka, ka tad, ja tas ir mazāks par vai vienāds ar nulli, vai lielāks par 100, tad tas ir nederīgs izmērus faktors, un mums vajadzētu brīdināt lietotāju par to. Pēc tam, kad mēs esam tālāk visu, mēs varam beidzot atvērt mūsu INFILE, un mums ir nepieciešams kļūdas pārbaudīt, lai pārliecinātos, ka atvēršana nav pārkāpusi kāda iemesla dēļ. Mums arī ir nepieciešams, lai atvērtu mūsu outfile, un atkal kļūda pārbaudiet, lai pārliecinātos, ka nav neizdoties kāda iemesla dēļ. Bet ir pārliecināts, ja atvēršana outfile neizdevās, ka mums ir nepieciešams, lai aizvērtu infile, kas jau ir atvērts. Tātad, pieņemot, ka nav pārkāpusi, tad we're - tāpat kā copy.c, - nolasīšu galvenē no INFILE. Mēs ejam, lai pārliecinātos, ka tas ir derīgs bitmap, bet tagad mēs esam gatavojas darīt dažas lietas mazliet atšķirīgi. Tātad, pirmkārt, mēs esam gatavojas vēlaties atcerēties sākotnējo platumu un augstumu no INFILE, jo mēs ejam uz var mainīt to uz OUTFILE. Tāpēc tagad, atcerieties, ka dīvainu iemeslu dēļ bi.biheight, ir negatīvs, un tāpēc faktiskais augstums, kas pozitīvi, mēs vēlaties veikt absolūto vērtību. Tagad polsterējums būs vienādi aprēķins, kā tas bija copy.c, izmantojot veco platumu, un tagad mēs esam tiešām mainīsies Kas mūsu galvenes. Tāpēc mēs ejam vairoties mūsu platumu līdz n, jo mēs esam mērogošana platumu līdz n, reizināt augstumu ar n, jo mēs esam mērogošana ar n, un tagad mums ir aprēķinu par jaunu polsterējumu kas pamatojas uz jauno platumu. Tāpēc tagad mums ir nepieciešams kaut ko mainīt citās jomās mūsu galvenes. Bi.biSizeImage vajadzētu būt size visu baitu pikseļiem un polsterējums attēla. Un tā izmērs ir vienā rindā vēlamos attēls ir lielums RGB triple, izmērs par vienu pikseli, reizes skaits pikseļu pēc kārtas, kā arī polsterējums pie rindas beigās. Un tad mēs ejam, lai reizināt, ka līdz absolūtā vērtība mūsu augstumu, lai iegūtu kopējais baitu skaits ar attēla datiem. bf.bfSize ir tikai kopējais skaits baitu mūsu attēlu datu, lai bi.biSizeImage, plus lielumu mūsu galvenes. Tātad, pievienojot no lieluma bitkartes failu header, un izmērs bitmap info header, OK. Tātad tas ir viss, kas mums ir nepieciešams, lai mainās mūsu galvenes. Tagad mēs rakstīt bitmap failu galvenes mūsu OUTFILE, un mūsu bitmap info header mūsu OUTFILE, un tagad mēs esam gatavi sākt iet pār faktisko pikseļi. Tāpēc mēs vēlamies atkārtot vairāk Eiropas inFile ir skenēšanas līnijas. Tāpēc mēs vēlamies atkārtot vairāk oldheight. Tas ir iemesls, kāpēc mums vajadzēja atcerēties sākotnējā augstuma, pirms mēs to mainīt un samazināts to ar n. Tagad mēs esam gatavojas lasīt vienotu rindā INFILE uz bufera izmēru oldwidth. Tāpēc šeit mēs esam freading lielums RGB triple viena pikseļu, un veco platums tos no INFILE mūsu bufera. Un tas būs visu rindu šajā masīvā. Tāpēc tagad mēs vēlamies atkārtot n reizes izdrukāt šo rindu mūsu OUTFILE n reizes. Un tā tas ir tas, ko šī cilpa dara. Šis iekšējais cilpa ir atkārtojot vairāk rindā sevi, pār masīvs, drukāšanas katrs pikselis masīva n reizes. Tā 0. Elements tiek drukāts n reizes, pirmais elements tiek drukāts n reizes. Un tas ir sava veida, kā mēs spēsim horizontāli ietaupījumus OUTFILE, un šī cilpa, jo mēs esam looping n reizes, ir tas, kā mēs spēsim vertikāli mērogā. Šeit lejā, mēs redzam, ka mums ir nepieciešams, lai pievienotu polsterējums beigās katrā rindā. Tas ir iemesls, kāpēc tas ir iekšā, lai cilpa kas ir izdrukāt n rindas tikko šī rinda no INFILE. Tad uz leju šeit, es esmu gatavojas izlaist polsterējums ar INFILE, jo pēc tam, kad mēs esam darīts ar vienu rindu infile, mums nerūp kāda polsterējums bija. Mēs vienkārši vēlamies, lai nokļūtu otrajā rindā. Un tad mēs cilpu atpakaļ un darīt visu tas atkal otrās rindas. Visbeidzot, kad mēs esam darīts ar visu, kas, mēs varam aizvērt INFILE, close outfile, un atgriešanās 0 jo mēs esam darījuši. Mans vārds ir Rob, un tas bija izmērus. [Mūzikas atskaņošanai]