>> [CHWARAE CERDDORIAETH]
>> ROB BOWDEN: Hi.
Rwy'n Rob a gadewch i ni maint i fyny y broblem hon.
Felly, rydym yn mynd i ddechrau gyda copy.c fel templed, ond yr ydym yn mynd i fod
gwneud yn eithaf ychydig o newidiadau.
>> Nawr rydym yn gweld ein bod yn gwneud unwaith newid lle'r ydym yn bellach yn gwirio
am nad yw ein RXC yn gyfartal 3, ond erbyn hyn nid ydym yn gwirio rc yn gyfartal 4.
Ers i ni hefyd yn awyddus i gynnwys, yn ychwanegol at y yn y ffeil ac allan ffeiliau
dadleuon, f sydd yn mynd i fod yn hyn ffactor y mae rydym yn dringo.
>> Felly, unwaith rydym yn sicr o hynny, rydym am defnyddio s sgan f i drawsnewid y llinyn
argv1 i arnofio.
Ac rydym yn mynd i storio hynny yn ffactor.
Mae'r cymeriad ychwanegol yn gwneud yn siŵr nad ydym mewn gwirionedd yn mynd i mewn i
rhywbeth fel 1.4 ABC ar y llinell orchymyn.
>> Nawr rydym yn mynd i greu rhai enwau eraill gan nad RV2 a RV3 yn
enwau yn ddefnyddiol iawn.
Rydym yn, yn lle hynny, yn mynd i alw nhw yn y ffeil ac allan ffeil.
Nawr rydym yn mynd i wneud yn siŵr bod ein ffactor oedd mewn gwirionedd yn ddilys.
Felly os ffactor yn llai na neu'n hafal i sero neu fwy na 100, yna fel y
y fanyleb, dylem wrthod y ffactor hwnnw.
>> Pan fyddwn yn sicr ei fod yn dda, yn awr rydym yn gallu agor y ffeil n, ac mae'n rhaid i ni wneud
sicrhau ei fod yn cael ei agor yn llwyddiannus.
Os nad oedd, a fydd yn dychwelyd null.
Rydym yn mynd i agor y ffeiliau y tu allan.
Ac eto, rydym am i wirio i wneud siŵr ei fod yn agor yn llwyddiannus.
Ac os nad oedd yn agor yn llwyddiannus, yna Mae angen i ni hefyd fod yn sicr i gau
y ffeil n oedd yn wreiddiol yn llwyddo i agor, neu fel arall mae gennym
gollwng cof.
>> Felly nawr rydym yn mynd i ddarllen yn y didfap header ffeiliau a gwybodaeth didfap
header o'r ffeil n.
Rydym yn mynd i wneud yn siŵr bod y n y ffeil yn didfap dilys.
OK.
>> Felly nawr rydym yn mynd i ddechrau gwneud rhai newidiadau.
Felly, oherwydd ein bod yn mynd i fod yn newid pethau, rydym yn gyntaf am gofio'r
hen lled y ffeil n.
Rydym eisiau cofio yr hen padin o y ffeil n gan ddefnyddio'r un cyfrifiad
o copy.c.
>> Ac yn awr rydym yn mynd i newid y pennawd gwybodaeth didfap.
Ac felly rydym yn lluosi y lled ac uchder gan ffactor ers
dyna beth rydym yn dringo heibio.
Rydym yn mynd i benderfynu ar y padin newydd y ffeil drwy
gan ddefnyddio'r lled newydd.
Ac rydym yn mynd i benderfynu ar y newydd maint y ddelwedd gan ddefnyddio nifer o
bytes mewn rhes sengl sy'n mynd i fod nifer y picsel yn y rhes
gwaith maint picsel yn ogystal â'r nifer o bytes o padin ar y diwedd
y rhes, a lluosi'r bob un sy'n gan y nifer o resi sydd gennym.
Felly dyna y nifer o bytes gennym yn ein data ddelwedd.
>> Bf.Bfsize yn awr yn mynd i fod yn y nifer o bytes yn ein delwedd beta yn ogystal â
maint ein penawdau.
Felly, yn ogystal â maint y pennawd ffeil bitmap a maint y pennawd gwybodaeth didfap.
OK.
Felly dyna ni ar gyfer ein penawdau.
Gallwn ysgrifennu'r pen ffeiliau a info pennawd i'n allan
ffeilio, ac rydym yn dda.
>> Nawr mae'n amser i ddechrau mewn gwirionedd ysgrifennu'r picsel
data i'r ffeiliau y tu allan.
Rydym yn mynd i ddatgan clustog o faint hen lled RGB treblu'r, ac rydym yn
mynd i ddatgan newidyn a elwir yn ddideimlad rhes, sef ein bod yn mynd i
gosod cyfartal i negyddol 1 yn y lle cyntaf.
Byddwn yn gweld ein bod yn mynd i fod yn defnyddio er mwyn cadw golwg ar yr hyn
rhes rydym wedi llwytho ar hyn o bryd i'r byffer hwn.
OK.
>> Felly, yn awr yn wahanol i'r argraffiad safonol, yn hytrach na bwysleisio'r drosodd ar y yn
ffeiliau, rydym yn mynd i ailadrodd dros bob rhes yn y ffeil allan a chyfrif i maes
sy'n rhes yn y ffeil yn yr ydym am ei rhoi mewn rhes hwn yn y ffeiliau y tu allan.
Felly bwysleisio'r dros yr holl rhesi yn y tu allan ffeil yn defnyddio'r uchder newydd, rydym yn gyntaf
mynd i benderfynu ar y rhes yn yr hen ffeilio rydym yn mynd i'w ddefnyddio, yr ydym yn
mynd i'w wneud trwy gymryd cyfredol hwn rhes wedi'i rannu gan ffactor.
Felly, mae hynny'n mynd i roi y rhes ni yn yr hen ffeil yr ydym am.
>> Felly nawr os fferru rhes yn hen y nid gyfartal, rydym yn mynd i gael i ddarllen y rhes
ein bod am i mewn i'n byffer rhes cyf.
Felly, sut ydym yn mynd i wneud hynny?
Yn gyntaf, rydym yn mynd at chyfrif i maes y sefyllfa sy'n dechrau y rhes yn y
ffeil wreiddiol.
Felly, y sefyllfa honno yn mynd i fod heibio bob un o'n penawdau a
wedi mynd heibio hen y rhesi.
>> Ac felly faint o bytes mewn rhes sengl?
Unwaith eto, maint RGB amser triphlyg hen lled yn ogystal â hen padin, felly dyna y
nifer o bytes mewn rhes sengl.
Ac rydym am hepgor y gorffennol hen y rhesi.
Felly, rydym yn mynd i f geisio ac rydym yn ddefnyddio ceisio gosod i ddechrau o'r
dechrau o ffeil.
Rydym yn mynd i f geisio swydd hon yn y ffeil, rhoi ni yn y
ddechrau'r rhes rydym am i ddarllen i mewn i'n byffer.
>> Rydym yn mynd i osod rhes ddideimlad cyfartal i hen y.
Felly nawr os ydym cefn dolen ac rydym am defnyddio hyn un rhes yn ein ffeiliau y tu allan,
yna nid ydym yn mynd i ddarllen mewn eto yn ddiangen.
Felly mewn gwirionedd, fferru rhes yn dim ond optimization.
>> Yn olaf, rydym yn mynd i ddarllen i mewn i'r rhes presennol yr hen lled RGB treblu'r
ein bod yn eisiau o'r ffeil wreiddiol.
Felly nawr cur rhes yn cynnwys y picsel o y ffeil gwreiddiol yr ydym am i
ysgrifennu i mewn i'r ffeiliau y tu allan.
Felly nawr, yn union fel uchod, yn hytrach na bwysleisio'r dros yr hen ffeil, mae angen
i ailadrodd dros y ffeiliau rhesi newydd.
Wel dyma, yn hytrach na bwysleisio'r dros yr holl o'r hen picsel, mewn rhes cyf,
rydym am i ailadrodd dros bob un o'r picsel yn ein ffeil newydd yn y
rhes penodol.
>> Pam ydym ni eisiau ei wneud hynny?
Oherwydd ein bod yn gweld yma nad ydym yn mewn gwirionedd o reidrwydd gan ddefnyddio pob un o'r
picsel yn y ffeil wreiddiol.
Oherwydd os ydym yn crebachu, gallem mewn gwirionedd yn awyddus i hepgor y picsel.
Ac rydym yn gweld bod hyn -
x wedi'i rannu gan ffactor -
adlewyrchu'n agos i fyny yma lle rydym yn dweud y wedi'i rannu gan ffactor at chyfrif i maes bod
yr hen y-fed rhes yn cyfateb i y y-fed res yn y ffeil hon newydd.
>> Nawr rydym yn mynd i ysgrifennu pob un picsel hyn o'r hen rhes
yn ein rhes newydd.
Unwaith y byddwn wedi gwneud hynny, mae angen i ddim ond rhoi'r padin ar ddiwedd ein rhes
ac yr ydym yn annhymerus 'dolen yn ôl ac yn parhau am pob un o'r rhesi yn ein ffeil newydd.
Ar y diwedd, mae angen i ni gau ein hen ffeilio, cau ein ffeil newydd, a dychwelyd
sero oherwydd aeth popeth iawn.
>> Fy enw i yw Rob ac roedd hyn yn toriad.
>> [CHWARAE CERDDORIAETH]