>> [Музика свира]
>> РОБ БОВДЕН: Здраво.
Ја сам Роб и хајде да величина до овог проблема.
Дакле, ми ћемо почети са цопи.ц као шаблон, али ћемо бити
што доста промена.
>> Сада видимо да смо одмах чинећи промените где ми више не проверавамо
за наш РКСЦ не равно 3, али сада смо проверу рц не равно 4.
Пошто желимо да укључи, у додатак у датотеци и ван фајлова
аргументи, Ф која ће бити ово фактор којим смо скалирање.
>> Дакле, када смо сигурни да желимо да користити а скенирање ф да конвертујете стринг
аргв1 на пловак.
И ми ћемо за складиштење да у фактор.
Овај додатни карактер се побринете да не улазе у ствари
нешто као 1.4 АБЦ у командној линији.
>> Сада ћемо да створи неке псеудониме пошто РВ2 и РВ3 нису
веома корисне имена.
Ми смо, уместо тога, идем да зовем их у датотеци и ван фајл.
Сада ћемо да се уверите да наш фактор је заправо важи.
Дакле, ако фактор је мања или једнака нула или већа од 100, а затим по
спец, треба одбацити то фактор.
>> Када смо сигурни да је то добро, сада можемо отворите фајл н, и морамо да
сигуран да је успешно отворен.
Ако није, да ће се вратити нулл.
Идемо да отворите излаз датотеку.
И опет, ми желимо да проверите да сигуран да је успешно отворен.
И ако то није успешно отвори, онда ми такође треба да буду сигурни да затворите
Н фајл који је првобитно успешно отворен, иначе имамо
осипање меморије.
>> Дакле, сада ћемо читати у битмапе датотека заглавља и битмапа Информације
хеадер из н фајла.
Идемо да се уверите да н фајл био валидан растерска.
У реду.
>> Дакле, сада ћемо почети неке измене.
Дакле, зато ћемо да се мења ствари, прво желим да се сетим
стари ширина н датотеке.
Ми желимо да се сетим стари паддинг од н фајл користећи исти прорачун
од цопи.ц.
>> А сада ћемо променити Информације битмапа заглавље.
И тако смо обоје множењем ширине и висина од фактора од
то је оно што смо скалирање по.
Идемо да се утврди нови паддинг од фајлу
користите нови ширину.
И ми ћемо одредити нови величина слике користећи број
бајтова у једном реду који ће бити број пиксела у том реду
пута величине Пикел Плус број бајтова поставом на крају
тог реда, и све то помножи по броју редова које имамо.
Тако да је број бајтова имамо у нашим подацима слике.
>> Бф.Бфсизе сада ће бити број бајтова у нашој слике бета плус
величина наших заглавља.
Дакле, плус величина датотеке заглавља битмапа и величина битмап инфо заглавља.
У реду.
Тако да је то за наше заглавља.
Можемо писати главу датотеке и Информације заглавље нашем оут
филе, а ми смо добри.
>> Сада је време да почнете заиста писање пиксела
Подаци на Повратак датотеку.
Идемо да прогласи бафер величине стари ширина РГБ тројке, а ми смо
ће прогласити променљиву зове ред утрнула, који је идемо у
иницијално постављен једнак негативном 1..
Видећемо да ћемо се користећи да у циљу пратите шта
ред Тренутно имамо лоадед у овој бафер.
У реду.
>> Дакле, сада за разлику од стандардног издања, уместо итератинг над на ин
фајл, идемо да вршите итерацију кроз сваки ред у датотеци Повратак и схватим
који ред у датотеци у желимо да место у овом низу у излазне датотеке.
Дакле итератинг над све редове у оут филе користећи нову висину, прво смо
ће одредити ред у старом филе ћемо користити, које смо
урадити тако што овај струје ред подељен фактор.
Тако да ће нам дати ред у старом фајлу који желимо.
>> Дакле, сада, ако ред утрнула не једнаку стару и, ћемо морати да прочитате ред
да желимо у нашој наставног реда бафера.
Па како ћемо то урадити?
Прво, ми ћемо да схватим положај који почиње да ред у
оригинални фајл.
Тако да позиција ће бити прошлост све наше заглавља и
Сада последњих старе г редове.
>> И тако колико бајтова су у једном реду?
Опет, величина РГБ трокреветне пута старе ширина, плус стара паддинг, тако да је
број бајтова у једном реду.
И ми желимо да прескочите старе и редове.
Зато ћемо тражити ф и ми смо користећи траже спремно из
почетак датотеке.
Идемо у ф траже да овај положај у датотеци, нас ставља на
почетак реда желимо да прочитате у нашој бафер.
>> Идемо да подесите ред утрнула једнак старом г.
Тако да сада ако се петља назад и желимо да користите овај исти ред у нашој оут фајлу,
онда нећемо да чита то опет непотребно.
Па стварно, ред је утрнула само оптимизација.
>> Коначно, ми ћемо читати у тренутни ред стар ширина РГБ утростручује
да желимо од оригиналне датотеке.
Дакле, сада трен ред садржи пикселе из оригинални фајл који желимо да
запишете у датотеку оут.
Дакле, сада, баш као горе, уместо итератинг преко старог фајла, морамо
то да вршите итерацију над новим фајловима редова.
Па овде, уместо итератинг над свим од старих пиксела који у наставног редом,
желимо да вршите итерацију кроз све пиксела у нашој новој датотеци у ово
Посебно ред.
>> Зашто желимо да урадимо?
Зато што смо овде видимо да нисмо заправо нужно користећи све
пиксела у оригиналном фајлу.
Јер ако смо се смањује, могли бисмо заправо желе да прескочите пиксела.
И видимо да је то -
к подељено са фактором -
блиско одражава овде где смо рекли и подељен фактор да схватим да
стари И-ог реда одговара И-ог реда у овој новој датотеци.
>> Сада ћемо писати све ови пиксели из старог реда
у нашем новом реду.
Када смо то урадили, морамо да само ставио преграде на крају нашег реда
и ми ћемо вратити и наставити петље за све редове у нашој новој датотеци.
На крају, морамо затворити наш стари филе, затворите нашу нову датотеку, и повратак
нула јер је све ишло добро.
>> Моје име је Роб и то је било паузе.
>> [Музика свира]