>> [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]