>> [MIZIK jwe]
>> ROB BOWDEN: Hi, mwen se Rob, se pou yo eseye sa a sou pou gwosè.
Se konsa, nou ap ankò ale nan kòmanse ak fondamantalman yon kopi copy.c la, ak
fè yon chanjman kèk.
Remake byen imedyatman nou wè yon chanjman, kote olye pou yo tcheke yo wè si
arg pa egal 3, nou vle tcheke si arg fè sa ki pa egal 4, depi
kounye a nou ap pa sèlman pran nan yon infile ak outfile, men nou ap tou ap pran nan
n, ki se kantite lajan an ke nou ap dekale imaj orijinal la pa.
Yon fwa nou ap asire w de sa, nou kapab jis konvèti n nan yon nonb antye ki pè lè l sèvi avèk atwa.
>> Se konsa, kounye a nou ap ale nan kreye kèk anpren, jis rele argv 2 infile, ak
argv 3 outfile, paske argv 2 ak argv 3 yo pa non trè itil.
Koulye a, nou vle tcheke a asire w n se nan limit yo nou espere, se konsa a
espèk presize ke si li nan mwens pase oswa egal a zewo, oswa ki pi gran pase 100,
Lè sa a, sa a, se yon faktè rdimansyonman valab, e nou ta dwe avèti itilizatè a nan sa.
>> Yon fwa nou ap pi lwen pase tout sa ki, nou ka finalman louvri infile nou an, epi nou bezwen
erè tcheke a asire w ke nan ouvèti pa t rate pou kèk rezon.
Nou menm tou nou bezwen louvri outfile nou an, epi ankò erè tcheke a asire w ke
pa t rate pou kèk rezon.
Men, asire w ke si ouvèti a nan nan outfile echwe ke nou bezwen yo fèmen
infile a, ki te deja louvri.
>> Se konsa,, an konsideran ke pa t rate, lè sa a we're - jis tankou nan copy.c--
pral li nan header a soti nan infile la.
Nou pral asire w ke li nan yon ki valab bitmap, men kounye a nou ap pral fè kèk
bagay sa yo yon ti jan yon lòt jan.
Se konsa, premye, nou ap ale nan vle sonje lajè a orijinal ak wotè
nan infile a, paske nou pral dwe chanje li pou outfile la.
Se konsa, koulye sonje ke pou rezon etranj bi.biheight, an negatif, ak
Se konsa, wotè aktyèl la, nan pozitif, nou vle pran valè absoli.
>> Koulye a, padding an ki pral fè menm bagay la tou kalkil jan li te ye nan copy.c,
lè l sèvi avèk lajè a fin vye granmoun, epi kounye a nou ap aktyèlman pral chanje
sa a nan header nou an.
Se konsa, nou ap ale nan anpil anpil pitit lajè nou an pa n, depi nou ap dekale lajè a pa
n, anpil anpil pitit wotè a pa n, depi nou ap dekale pa n, e kounye a, nou gen
kalkil la pou yon nouvo padding ki baze sou lajè a nouvo.
>> Se konsa, kounye a nou bezwen chanje kèk lòt jaden nan header nou an.
Bi.biSizeImage sa sipoze ye a gwosè nan tout bytes yo nan piksèl yo
ak ogmantasyon nan imaj la.
Se konsa, gwosè a nan yon sèl ranje nou imaj se gwosè nan Rgb trip, gwosè a
nan yon pixel sèl, fwa kantite piksèl nan yon ranje, plis padding a nan
nan fen ranje a.
Lè sa a, nou pral anpil anpil pitit ki pa ki gen valè absoli nan wotè nou jwenn
kantite total bytes nan done yo imaj.
bf.bfSize se jis kantite total nan bytes nan done pòtre ak nou, se konsa
bi.biSizeImage, plis la gwosè nan Tèt nou an.
Se konsa,, pandan l ajoute sou gwosè a nan dosye bitmap header, ak kantite elèv bitmap info
header, OK.
Se konsa, sa a, se tout sa nou bezwen chanje nan Tèt nou an.
Koulye a, nou pral ekri lento a dosye bitmap outfile nou an, epi info bitmap nou
header outfile nou an, e kounye a, nou ap pare yo kòmanse ale
sou piksèl yo reyèl.
>> Se konsa, nou vle repňte sou liy optik infile la.
Se konsa, nou vle repňte sou oldheight.
Se poutèt sa nou bezwen sonje la orijinal wotè, anvan nou chanje li
ak pwopòsyonèl li pa n.
Koulye a, nou ap ale nan li yon sèl ranje nan infile a nan yon
tanpon nan gwosè oldwidth.
Se konsa, isit la, nou ap freading gwosè nan Rgb trip, youn pixel, ak lajè fin vye granmoun nan
yo soti nan infile a nan zòn de defans nou an.
Epi sa a, pral fè yon tout ranje nan etalaj sa a.
Se konsa, koulye a, nou vle repňte fwa n ekri ak lèt ​​detache ranje sa a outfile n fwa nou an.
Se konsa, se sa ki sa a bouk ap fè.
Sa a bouk enteryè se iteration sou la ranje tèt li, sou etalaj, enprime nan
chak pixel nan etalaj la n fwa.
Se konsa, se eleman ki zeroth yo te enprime n fwa, se eleman nan premye ke yo te
enprime fwa n.
Epi sa a, sòt de ki jan nou ap ale nan orizontal echèl la nan outfile la, ak
sa a bouk, depi nou ap loupin n fwa, ki jan nou ap ale nan
vètikal echèl.
>> Desann isit la, nou wè ke nou bezwen ajoute padding a nan fen chak ranje.
Se poutèt sa sa a se andedan pou bouk la ki nan enprime soti ranje yo n nan jis
ranje sa a yon sèl soti nan infile la.
Lè sa a, desann isit la, mwen pral ale dirèkteman plis pase padding la nan infile a, depi yon fwa
nou ap fè ak yon ranje nan infile, nou pa pran swen sou
sa padding la te ye a.
Nou jis vle pou li ale nan dezyèm ranje a.
Lè sa a, nou pral bouk retounen lakay yo epi fè tout sa a ankò pou dezyèm ranje a.
>> Finalman, yon fwa nou ap fè ak tout sa ki, nou ka fèmen infile a, fèmen
outfile a, epi retounen 0 paske nou ap fè.
>> Non mwen se Rob, ak sa a te rdimansyonman.
>> [MIZIK jwe]