[REPRODUCCIÓ DE MÚSICA] ROB Bowden: Hi. Sóc Rob i vaig deixar de mida aquest problema. Així que anem a començar amb copy.c com una plantilla, però nosaltres serem fer bastants canvis. Ara veiem que estem fent immediatament una canviar el que ja no estem comprovant per a la nostra RXC no és igual a 3, però ara estem comprovant rc no és igual a 4. Atès que també volem incloure, en A més dels arxius d'entrada i sortida d'arxius arguments, f que serà això factor pel qual estem escalar. Així que una vegada que estiguem segurs que volem utilitzar s exploració f per convertir la cadena argv1 a un flotador. I anem a emmagatzemar que en el factor. Aquest caràcter addicional és assegurar que no estem realment entrant una mena 1.4 ABC en la línia d'ordres. Ara anem a crear alguns àlies des RV2 i RV3 no són molt útils noms. Estem, en canvi, va a cridar ells a l'arxiu i sortir de l'arxiu. Ara anem a fer de el nostre factor era realment vàlida. Així que si el factor és menor que o igual a zero o més gran que 100, a continuació, com per l'especificació, s'ha de rebutjar aquest factor. Quan estem segurs que és bo, ara podem obrir l'arxiu n, i hem de fer assegurar-se que es va obrir amb èxit. Si no ho fes, que tornarà NULL. Anem a obrir el fitxer de sortida. I un cop més, volem comprovar per assegurar segur que ha obert amb èxit. I si no s'obre correctament, a continuació, també tenim que assegureu-vos de tancar l'arxiu n que al principi amb èxit obert, o en cas contrari tindrà un pèrdua de memòria. Així que ara llegirem al mapa de bits capçalera de l'arxiu i la informació de mapa de bits Rematada de cap de l'arxiu n. Anem a fer de l' arxiu n era un mapa de bits vàlid. D'acord. Així que ara anem a començar fer alguns canvis. Així doncs estarem canviant coses, el primer que volen recordar el ample antiga de l'arxiu n. Volem recordar el vell encoixinat de l'arxiu n utilitzant el mateix càlcul des copy.c. I ara canviarem la capçalera d'informació de mapa de bits. I pel que estem multiplicant tant l'ample i l'altura pel factor des això és el que estem per ampliar. Anem a determinar la nou material de farciment de l'expedient per utilitzant la nova amplada. I anem a determinar el nou La mida de la imatge utilitzant el nombre de bytes en una única fila que es va a ser el nombre de píxels en aquesta fila vegades la mida d'un píxel, més la nombre de bytes de farciment al final d'aquesta fila i multiplicar tot el que pel nombre de files que tenim. Així que aquest és el nombre de bytes que tenim a les nostres dades d'imatge. Bf.Bfsize ara serà el nombre de bytes en la nostra beta imatge més la mida dels nostres capçaleres. Així, més grandària de capçalera d'arxiu de mapa de bits i la mida de la capçalera d'informació de mapa de bits. D'acord. Així que això és tot per les nostres capçaleres. Podem escriure la capçalera del fitxer i informació de la capçalera de la nostra sortida arxiu, i estem bé. Ara és el moment per realment començar escriure el píxel les dades a l'arxiu de sortida. Anem a declarar un buffer de mida vella ample RGB triplica, i estem va a declarar una variable anomenada fila adormida, que és que anem a establert inicialment igual a la negativa gener. Anem a veure que estarem usant que per tal de fer un seguiment del que fila que hem carregat en aquest moment en aquest tampó. D'acord. Així que ara a diferència de l'edició estàndard, en lloc de recórrer a iteració en l'en arxiu, anem a iterar sobre cada fila a l'arxiu i esbrinar quina fila a l'arxiu en què volem col · locar en aquesta fila a l'arxiu de sortida. Així iteració en totes les files de la sortida fitxer fent servir la nova alçada, som els primers determinarà la fila a l'antiga arxivem que utilitzarem, el que estem farem mitjançant l'adopció d'aquest corrent fila dividit pel factor. Així que això ens donarà la fila a l'arxiu antic que volem. Així que ara si la fila entumida no és igual edat i, anem a haver de llegir la fila que volem al nostre buffer fila actual. Llavors, com farem això? En primer lloc, anem a esbrinar la posició que comença aquesta fila al arxiu original. Així que aquesta posició serà més enllà de totes les nostres capçaleres i Ara passats files antigues i. I així, la quantitat de bytes es troben en una sola fila? Un cop més, la mida de RGB vegades triples d'edat ample, més vell farcit, així que aquesta és la nombre de bytes en una sola fila. I volem saltar últimes files antigues i. Així que anem a buscar f i estem utilitzant busqui conjunt a partir de la a partir d'un arxiu. Anem a tractar de f aquesta posició a l'arxiu, el que ens situa en el a partir de la fila que volem llegir en el nostre buffer. Anem a establir fila numb igual edat i. Així que ara si que tornar bucle i volem utilitzar aquesta mateixa fila en el nostre fitxer a terme, llavors no anem a llegir en comptes innecessàriament. Així que en realitat, la fila és insensible només una optimització. Finalment, anem a llegir en el fila actual l'antic ample RGB triplica que volem des de l'arxiu original. Així que ara act fila conté els píxels de l'arxiu original que volem escriure a l'arxiu de sortida. Així que ara, igual que abans, en lloc de iteració a l'arxiu antic, necessitem per iterar sobre les noves files arxius. Doncs aquí, en lloc de iterar sobre tots dels vells píxels que a la fila actual, volem iterar sobre tots els píxels en el nostre nou arxiu en aquest en particular fila. Per què volem fer això? Perquè veiem aquí que no estem en realitat necessàriament l'ús de tots els píxels al fitxer original. Perquè si estem disminuint, podríem realment vulgui saltar-se els píxels. I veiem que això - x dividit pel factor - estretament reflecteix aquí on diem i dividit pel factor d'esbrinar que la vella fila-i th correspon a la fila-i XX en aquest nou arxiu. Ara anem a escriure tots aquests píxels de la fila edat en la nostra nova fila. Quan hem fet això, hem de només posar el farciment al final de la nostra fila I anem a bucle i continuar durant totes les files al nostre nou arxiu. Al final, hem de tancar el nostre vell presentar, tancar el nostre nou arxiu, i el retorn zero perquè tot va sortir bé. El meu nom és Rob i això va ser Recess. [REPRODUCCIÓ DE MÚSICA]