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