1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [Музика свира] 3 00:00:12,470 --> 00:00:13,210 >> РОБ БОВДЕН: Здраво. 4 00:00:13,210 --> 00:00:16,870 Ја сам Роб и хајде да величина до овог проблема. 5 00:00:16,870 --> 00:00:20,990 Дакле, ми ћемо почети са цопи.ц као шаблон, али ћемо бити 6 00:00:20,990 --> 00:00:23,340 што доста промена. 7 00:00:23,340 --> 00:00:27,570 >> Сада видимо да смо одмах чинећи промените где ми више не проверавамо 8 00:00:27,570 --> 00:00:31,560 за наш РКСЦ не равно 3, али сада смо проверу рц не равно 4. 9 00:00:31,560 --> 00:00:34,670 Пошто желимо да укључи, у додатак у датотеци и ван фајлова 10 00:00:34,670 --> 00:00:39,550 аргументи, Ф која ће бити ово фактор којим смо скалирање. 11 00:00:39,550 --> 00:00:45,430 >> Дакле, када смо сигурни да желимо да користити а скенирање ф да конвертујете стринг 12 00:00:45,430 --> 00:00:49,030 аргв1 на пловак. 13 00:00:49,030 --> 00:00:51,330 И ми ћемо за складиштење да у фактор. 14 00:00:51,330 --> 00:00:55,180 Овај додатни карактер се побринете да не улазе у ствари 15 00:00:55,180 --> 00:00:59,200 нешто као 1.4 АБЦ у командној линији. 16 00:00:59,200 --> 00:01:02,960 >> Сада ћемо да створи неке псеудониме пошто РВ2 и РВ3 нису 17 00:01:02,960 --> 00:01:04,310 веома корисне имена. 18 00:01:04,310 --> 00:01:07,660 Ми смо, уместо тога, идем да зовем их у датотеци и ван фајл. 19 00:01:07,660 --> 00:01:11,580 Сада ћемо да се уверите да наш фактор је заправо важи. 20 00:01:11,580 --> 00:01:16,330 Дакле, ако фактор је мања или једнака нула или већа од 100, а затим по 21 00:01:16,330 --> 00:01:19,660 спец, треба одбацити то фактор. 22 00:01:19,660 --> 00:01:23,890 >> Када смо сигурни да је то добро, сада можемо отворите фајл н, и морамо да 23 00:01:23,890 --> 00:01:25,950 сигуран да је успешно отворен. 24 00:01:25,950 --> 00:01:28,630 Ако није, да ће се вратити нулл. 25 00:01:28,630 --> 00:01:30,390 Идемо да отворите излаз датотеку. 26 00:01:30,390 --> 00:01:33,420 И опет, ми желимо да проверите да сигуран да је успешно отворен. 27 00:01:33,420 --> 00:01:37,270 И ако то није успешно отвори, онда ми такође треба да буду сигурни да затворите 28 00:01:37,270 --> 00:01:40,870 Н фајл који је првобитно успешно отворен, иначе имамо 29 00:01:40,870 --> 00:01:42,600 осипање меморије. 30 00:01:42,600 --> 00:01:46,350 >> Дакле, сада ћемо читати у битмапе датотека заглавља и битмапа Информације 31 00:01:46,350 --> 00:01:48,890 хеадер из н фајла. 32 00:01:48,890 --> 00:01:52,360 Идемо да се уверите да н фајл био валидан растерска. 33 00:01:52,360 --> 00:01:52,640 У реду. 34 00:01:52,640 --> 00:01:55,100 >> Дакле, сада ћемо почети неке измене. 35 00:01:55,100 --> 00:01:58,840 Дакле, зато ћемо да се мења ствари, прво желим да се сетим 36 00:01:58,840 --> 00:02:01,510 стари ширина н датотеке. 37 00:02:01,510 --> 00:02:05,160 Ми желимо да се сетим стари паддинг од н фајл користећи исти прорачун 38 00:02:05,160 --> 00:02:06,990 од цопи.ц. 39 00:02:06,990 --> 00:02:09,840 >> А сада ћемо променити Информације битмапа заглавље. 40 00:02:09,840 --> 00:02:13,630 И тако смо обоје множењем ширине и висина од фактора од 41 00:02:13,630 --> 00:02:15,750 то је оно што смо скалирање по. 42 00:02:15,750 --> 00:02:18,420 Идемо да се утврди нови паддинг од фајлу 43 00:02:18,420 --> 00:02:21,140 користите нови ширину. 44 00:02:21,140 --> 00:02:27,330 И ми ћемо одредити нови величина слике користећи број 45 00:02:27,330 --> 00:02:31,610 бајтова у једном реду који ће бити број пиксела у том реду 46 00:02:31,610 --> 00:02:35,960 пута величине Пикел Плус број бајтова поставом на крају 47 00:02:35,960 --> 00:02:40,310 тог реда, и све то помножи по броју редова које имамо. 48 00:02:40,310 --> 00:02:43,800 Тако да је број бајтова имамо у нашим подацима слике. 49 00:02:43,800 --> 00:02:48,190 >> Бф.Бфсизе сада ће бити број бајтова у нашој слике бета плус 50 00:02:48,190 --> 00:02:49,350 величина наших заглавља. 51 00:02:49,350 --> 00:02:53,910 Дакле, плус величина датотеке заглавља битмапа и величина битмап инфо заглавља. 52 00:02:53,910 --> 00:02:54,510 У реду. 53 00:02:54,510 --> 00:02:56,440 Тако да је то за наше заглавља. 54 00:02:56,440 --> 00:02:59,030 Можемо писати главу датотеке и Информације заглавље нашем оут 55 00:02:59,030 --> 00:03:01,590 филе, а ми смо добри. 56 00:03:01,590 --> 00:03:03,800 >> Сада је време да почнете заиста писање пиксела 57 00:03:03,800 --> 00:03:05,120 Подаци на Повратак датотеку. 58 00:03:05,120 --> 00:03:10,460 Идемо да прогласи бафер величине стари ширина РГБ тројке, а ми смо 59 00:03:10,460 --> 00:03:13,790 ће прогласити променљиву зове ред утрнула, који је идемо у 60 00:03:13,790 --> 00:03:15,640 иницијално постављен једнак негативном 1.. 61 00:03:15,640 --> 00:03:19,090 Видећемо да ћемо се користећи да у циљу пратите шта 62 00:03:19,090 --> 00:03:22,640 ред Тренутно имамо лоадед у овој бафер. 63 00:03:22,640 --> 00:03:23,290 У реду. 64 00:03:23,290 --> 00:03:28,750 >> Дакле, сада за разлику од стандардног издања, уместо итератинг над на ин 65 00:03:28,750 --> 00:03:32,900 фајл, идемо да вршите итерацију кроз сваки ред у датотеци Повратак и схватим 66 00:03:32,900 --> 00:03:38,130 који ред у датотеци у желимо да место у овом низу у излазне датотеке. 67 00:03:38,130 --> 00:03:44,930 Дакле итератинг над све редове у оут филе користећи нову висину, прво смо 68 00:03:44,930 --> 00:03:48,890 ће одредити ред у старом филе ћемо користити, које смо 69 00:03:48,890 --> 00:03:53,560 урадити тако што овај струје ред подељен фактор. 70 00:03:53,560 --> 00:03:58,000 Тако да ће нам дати ред у старом фајлу који желимо. 71 00:03:58,000 --> 00:04:03,310 >> Дакле, сада, ако ред утрнула не једнаку стару и, ћемо морати да прочитате ред 72 00:04:03,310 --> 00:04:05,940 да желимо у нашој наставног реда бафера. 73 00:04:05,940 --> 00:04:07,700 Па како ћемо то урадити? 74 00:04:07,700 --> 00:04:11,650 Прво, ми ћемо да схватим положај који почиње да ред у 75 00:04:11,650 --> 00:04:13,100 оригинални фајл. 76 00:04:13,100 --> 00:04:18,630 Тако да позиција ће бити прошлост све наше заглавља и 77 00:04:18,630 --> 00:04:21,589 Сада последњих старе г редове. 78 00:04:21,589 --> 00:04:23,880 >> И тако колико бајтова су у једном реду? 79 00:04:23,880 --> 00:04:28,740 Опет, величина РГБ трокреветне пута старе ширина, плус стара паддинг, тако да је 80 00:04:28,740 --> 00:04:30,640 број бајтова у једном реду. 81 00:04:30,640 --> 00:04:33,680 И ми желимо да прескочите старе и редове. 82 00:04:33,680 --> 00:04:37,580 Зато ћемо тражити ф и ми смо користећи траже спремно из 83 00:04:37,580 --> 00:04:39,100 почетак датотеке. 84 00:04:39,100 --> 00:04:42,740 Идемо у ф траже да овај положај у датотеци, нас ставља на 85 00:04:42,740 --> 00:04:46,500 почетак реда желимо да прочитате у нашој бафер. 86 00:04:46,500 --> 00:04:48,510 >> Идемо да подесите ред утрнула једнак старом г. 87 00:04:48,510 --> 00:04:53,080 Тако да сада ако се петља назад и желимо да користите овај исти ред у нашој оут фајлу, 88 00:04:53,080 --> 00:04:55,970 онда нећемо да чита то опет непотребно. 89 00:04:55,970 --> 00:04:59,310 Па стварно, ред је утрнула само оптимизација. 90 00:04:59,310 --> 00:05:05,500 >> Коначно, ми ћемо читати у тренутни ред стар ширина РГБ утростручује 91 00:05:05,500 --> 00:05:08,040 да желимо од оригиналне датотеке. 92 00:05:08,040 --> 00:05:12,270 Дакле, сада трен ред садржи пикселе из оригинални фајл који желимо да 93 00:05:12,270 --> 00:05:14,200 запишете у датотеку оут. 94 00:05:14,200 --> 00:05:18,960 Дакле, сада, баш као горе, уместо итератинг преко старог фајла, морамо 95 00:05:18,960 --> 00:05:22,560 то да вршите итерацију над новим фајловима редова. 96 00:05:22,560 --> 00:05:27,450 Па овде, уместо итератинг над свим од старих пиксела који у наставног редом, 97 00:05:27,450 --> 00:05:31,210 желимо да вршите итерацију кроз све пиксела у нашој новој датотеци у ово 98 00:05:31,210 --> 00:05:32,480 Посебно ред. 99 00:05:32,480 --> 00:05:34,140 >> Зашто желимо да урадимо? 100 00:05:34,140 --> 00:05:38,960 Зато што смо овде видимо да нисмо заправо нужно користећи све 101 00:05:38,960 --> 00:05:41,020 пиксела у оригиналном фајлу. 102 00:05:41,020 --> 00:05:46,630 Јер ако смо се смањује, могли бисмо заправо желе да прескочите пиксела. 103 00:05:46,630 --> 00:05:48,090 И видимо да је то - 104 00:05:48,090 --> 00:05:49,690 к подељено са фактором - 105 00:05:49,690 --> 00:05:55,620 блиско одражава овде где смо рекли и подељен фактор да схватим да 106 00:05:55,620 --> 00:06:02,480 стари И-ог реда одговара И-ог реда у овој новој датотеци. 107 00:06:02,480 --> 00:06:05,880 >> Сада ћемо писати све ови пиксели из старог реда 108 00:06:05,880 --> 00:06:07,440 у нашем новом реду. 109 00:06:07,440 --> 00:06:10,890 Када смо то урадили, морамо да само ставио преграде на крају нашег реда 110 00:06:10,890 --> 00:06:15,540 и ми ћемо вратити и наставити петље за све редове у нашој новој датотеци. 111 00:06:15,540 --> 00:06:19,390 На крају, морамо затворити наш стари филе, затворите нашу нову датотеку, и повратак 112 00:06:19,390 --> 00:06:21,540 нула јер је све ишло добро. 113 00:06:21,540 --> 00:06:24,220 >> Моје име је Роб и то је било паузе. 114 00:06:24,220 --> 00:06:29,184 >> [Музика свира]