1 00:00:00,000 --> 00:00:12,240 >> [Музика свира] 2 00:00:12,240 --> 00:00:15,870 >> РОБ Бовден: Здраво, ја сам Роб, хајде пробајте ово за. 3 00:00:15,870 --> 00:00:21,100 Дакле, ми смо поново ће почети са основи копија цопи.ц, а 4 00:00:21,100 --> 00:00:22,860 направи неколико промена. 5 00:00:22,860 --> 00:00:26,280 Напомена одмах видимо промену, где уместо проверава да ли 6 00:00:26,280 --> 00:00:30,440 аргц не једнак 3, желимо да проверите ако аргц није једнако 4, од 7 00:00:30,440 --> 00:00:34,350 сада ми не само узимајући у инфиле и оутфиле, али смо такође узимајући у 8 00:00:34,350 --> 00:00:38,980 н, који је износ који смо скалирање оригиналну слику. 9 00:00:38,980 --> 00:00:44,340 Када будемо сигурни да, можемо само претворити н на цео број помоћу атои. 10 00:00:44,340 --> 00:00:48,760 >> Дакле, сада ћемо створити неки алиас, само зови аргв 2 инфиле, и 11 00:00:48,760 --> 00:00:54,240 аргв 3 оутфиле, јер аргв 2 и аргв 3 нису од велике помоћи имена. 12 00:00:54,240 --> 00:00:58,510 Сада желимо да проверите да ли је н у границама очекујемо, тако 13 00:00:58,510 --> 00:01:02,910 спецификација наводи да ако је мање од или једнак нули, или већа од 100, 14 00:01:02,910 --> 00:01:08,580 онда је то неважећи ресизе фактор, и ми треба да упозори корисника о томе. 15 00:01:08,580 --> 00:01:13,090 >> Када будемо изнад свега тога, можемо коначно отворимо наше инфиле, а ми треба 16 00:01:13,090 --> 00:01:16,270 грешкама проверите да бисте се уверили отварање није пропустио из неког разлога. 17 00:01:16,270 --> 00:01:19,860 Такође, треба да отворимо нашу оутфиле, а опет еррор проверите да бисте се уверили 18 00:01:19,860 --> 00:01:21,250 није пропустио из неког разлога. 19 00:01:21,250 --> 00:01:26,270 Али будите сигурни да ли отварање оутфиле успели да треба затворити 20 00:01:26,270 --> 00:01:29,040 инфиле, који је већ отворен. 21 00:01:29,040 --> 00:01:33,690 >> Дакле, под претпоставком да не успеју, онда Ми смо - баш као у цопи.ц-- 22 00:01:33,690 --> 00:01:36,140 Прочитаћу у заглављу из инфиле. 23 00:01:36,140 --> 00:01:40,130 Идемо да се уверите да је важећи битмапа, али сада ћемо да урадимо неке 24 00:01:40,130 --> 00:01:41,620 ствари мало другачије. 25 00:01:41,620 --> 00:01:44,870 Дакле, прво, идемо да желе да запамтите оригинални ширину и висину 26 00:01:44,870 --> 00:01:48,290 од инфиле, јер ћемо се то мења за оутфиле. 27 00:01:48,290 --> 00:01:53,890 Тако сада запамтите да за чудне разлога би.бихеигхт, је негативан, а 28 00:01:53,890 --> 00:01:58,670 тако да је стварни висина, у позитиван, желе да преузму апсолутну вредност. 29 00:01:58,670 --> 00:02:02,580 >> Сада, паддинг ће бити исти обрачун као што је био у цопи.ц, 30 00:02:02,580 --> 00:02:06,060 користећи стару ширину, а сада смо заправо ће се променити 31 00:02:06,060 --> 00:02:07,320 шта је у нашем главом. 32 00:02:07,320 --> 00:02:11,200 Тако ћемо помножити наш ширину од н, пошто смо скалирање ширину од 33 00:02:11,200 --> 00:02:15,100 н, помножите висину од н, јер смо скалирање по н, а сада имамо 34 00:02:15,100 --> 00:02:19,250 Калкулација за нове пуњење заснована на новом ширине. 35 00:02:19,250 --> 00:02:21,840 >> Тако да сада морамо да промените неки остала поља у нашем главом. 36 00:02:21,840 --> 00:02:26,890 Би.биСизеИмаге би требало да буде величина свих бајтова у пикселима 37 00:02:26,890 --> 00:02:28,520 паддинг и слике. 38 00:02:28,520 --> 00:02:34,190 И тако величина једном реду од наших слика је величина РГБ троструко, величина 39 00:02:34,190 --> 00:02:39,430 од једног пиксела, пута број пиксела за редом, плус паддинг на 40 00:02:39,430 --> 00:02:40,910 крај реда. 41 00:02:40,910 --> 00:02:45,200 А онда ћемо да се размножавају тако да апсолутна вредност нашег висине добили 42 00:02:45,200 --> 00:02:48,350 укупан број бајтова у подацима слике. 43 00:02:48,350 --> 00:02:53,050 бф.бфСизе је само укупан број бајтова у нашим слике подацима, тако 44 00:02:53,050 --> 00:02:56,530 би.биСизеИмаге, плус величина наших заглавља. 45 00:02:56,530 --> 00:02:59,850 Дакле, додајући на величини битмап датотеке заглавља, а величина битмап инфо 46 00:02:59,850 --> 00:03:00,800 заглавље, у реду. 47 00:03:00,800 --> 00:03:03,170 Дакле, то је све што је потребно да променити у нашим заглавља. 48 00:03:03,170 --> 00:03:07,020 Сада ћемо написати заглавље битмап фајл нашем оутфиле, и наш битмап инфо 49 00:03:07,020 --> 00:03:09,880 хеадер нашем оутфиле, а сада ми смо спремни за почетак иде 50 00:03:09,880 --> 00:03:11,990 преко стварних пиксела. 51 00:03:11,990 --> 00:03:15,720 >> Зато желимо да вршите итерацију над сцан линије на инфиле а. 52 00:03:15,720 --> 00:03:17,730 Зато желимо да вршите итерацију над олдхеигхт. 53 00:03:17,730 --> 00:03:20,830 То је разлог зашто нам је потребно да запамтите оригинална висина, пре него што га промените 54 00:03:20,830 --> 00:03:23,040 и то смањени са н. 55 00:03:23,040 --> 00:03:27,810 Сада ћемо прочитати један ред од инфиле у 56 00:03:27,810 --> 00:03:30,630 бафер величине олдвидтх. 57 00:03:30,630 --> 00:03:36,190 Дакле овде, ми смо фреадинг величина РГБ троструко, један пиксел, а стари ширина 58 00:03:36,190 --> 00:03:39,760 их из инфиле у нашој бафер. 59 00:03:39,760 --> 00:03:43,480 И то ће бити читава ред у овом низу. 60 00:03:43,480 --> 00:03:50,390 Дакле, сада, желимо да вршите итерацију н пута на принт овај ред у нашој оутфиле н пута. 61 00:03:50,390 --> 00:03:52,510 И то је оно што се ради ово петља. 62 00:03:52,510 --> 00:03:57,910 Овај унутрашњи петље се итератинг над ред се, преко низа, штампање 63 00:03:57,910 --> 00:04:00,710 сваки пиксел у низу н пута. 64 00:04:00,710 --> 00:04:04,510 Дакле нулти елемент се штампају н пута, први елемент је бити 65 00:04:04,510 --> 00:04:05,660 штампан н пута. 66 00:04:05,660 --> 00:04:10,820 И то је врста како ћемо хоризонтално скала у оутфиле, и 67 00:04:10,820 --> 00:04:13,390 ово петља, јер смо лоопинг н пута, како ћемо 68 00:04:13,390 --> 00:04:15,580 вертикално скала. 69 00:04:15,580 --> 00:04:19,850 >> Доле, видимо да нам је потребно да додате паддинг на крају сваког реда. 70 00:04:19,850 --> 00:04:25,050 Зато је ово унутар петље за да се одштампа на н редове само 71 00:04:25,050 --> 00:04:28,400 овај један ред од инфиле. 72 00:04:28,400 --> 00:04:32,150 Онда овде, ја ћу да прескочим паддинг у инфиле, јер једном 73 00:04:32,150 --> 00:04:34,560 Завршили смо са једним редом инфиле, ми не бринемо о 74 00:04:34,560 --> 00:04:35,290 шта паддинг био. 75 00:04:35,290 --> 00:04:37,110 Ми само желимо да се у другом реду. 76 00:04:37,110 --> 00:04:40,870 А онда ћемо петља назад и урадите све ово опет за други ред. 77 00:04:40,870 --> 00:04:44,406 >> Коначно, када смо завршили са све то, можемо затворити инфиле, близу 78 00:04:44,406 --> 00:04:47,430 оутфиле, и повратак 0 јер смо урадили. 79 00:04:47,430 --> 00:04:50,330 >> Моје име је Роб, и то је било ресизе. 80 00:04:50,330 --> 00:04:54,934 >> [Музика свира]