[MUSIC PŘEHRÁVÁNÍ] ROB Bowden: Ahoj, já jsem Rob, pojďme zkuste to kvůli velikosti. Takže jsme se opět začnou s v podstatě kopie copy.c, a provést několik změn. Poznámka okamžitě vidíme změny, kde místo kontroly, zda argc není rovno 3, chceme zkontrolovat pokud argc není rovno 4, protože Nyní jsme nejen brát v INFILE a outfile, ale my jsme také přičemž v n, což je částka, kterou jsme měřítko původní obraz. Poté, co jsme si jisti, že můžeme jen převést n na integer pomocí atoi. Tak, teď budeme vytvářet nějaké přezdívky, stačí zavolat argv 2 INFILE, a argv 3 outfile, protože argv 2 a argv 3 nemůže velmi užitečné jména. Nyní chceme, aby zkontrolujte, zda n je v mezích očekáváme, takže spec uvádí, že v případě, že je menší než nebo se rovná nule, nebo větší než 100, pak je to neplatné resize faktor, a měli bychom varovat uživatele, že. Poté, co jsme za všechno, můžeme konečně otevřít naše soubor_se_hrou, a my potřebujeme chyby zkontrolovat, aby se ujistil, že otevření nezklamal z nějakého důvodu. Musíme také otevřít naše outfile, a opět chyba zkontrolovat, aby se ujistil, že neselhal z nějakého důvodu. Ale být jisti, zda otevření outfile nedokázal, že musíme zavřít infile, která již byla otevřena. Takže, za předpokladu, že neselhal, pak Jsme - stejně jako v copy.c-- bude číst v záhlaví od infile. Chystáme se ujistil, že to platí bitmap, ale teď budeme dělat nějaké věci trochu jinak. Tak za prvé, budeme chtít, aby vzpomenout na původní šířku a výšku ze vstupni soubor, protože budeme se mění jej na outFile. Takže teď si uvědomit, že za podivných důvodů bi.biheight, je negativní, a takže skutečná výška, v pozitivní, se Chcete mít absolutní hodnotu. Nyní, výplň bude stejný výpočet, jak to bylo v copy.c, používat staré šířku, a teď jsme ve skutečnosti se změní to, co je v našem záhlaví. Takže budeme násobit naše šířku podle n, protože jsme škálování šířku podle n, vynásobte výšku n, protože jsme škálování podle n, a teď máme výpočet pro novou výplň vztaženo na novou šířku. Takže teď musíme změnit některé Všechny ostatní položky v našem záhlaví. Bi.biSizeImage má být Velikost všech bytů v pixelech a polstrování z obrázku. A tak velikost jednoho řádku naší obrázek je velikost RGB trojnásobný, velikost jediného pixelu, krát počet pixelů v řadě, plus polstrování na konec řádku. A pak budeme násobit, že absolutní hodnota naší výšky dostat celkový počet bajtů v obrazových datech. bf.bfSize je pouze celkový počet z bytů v našich obrazových dat, takže bi.biSizeImage, plus Velikost našich hlaviček. Takže s tím, na velikosti bitmapového souboru záhlaví a velikost bitmapy informací záhlaví, OK. Tak to je vše, co potřebujeme Změna v našich hlavičkách. Teď budeme psát záhlaví bitmap souboru naší outFile, a naše bitmapové informace header naší outFile, a teď Jsme připraveni začít chodit na skutečných pixelů. Takže chceme iteraci sejmutí na vstupni soubor je. Takže chceme iterovat přes oldheight. To je důvod, proč jsme potřebovali mít na paměti, původní výšky, než jsme to změnit a zmenšen ji n. Teď budeme číst jeden řádek INFILE do vyrovnávací paměť o velikosti oldwidth. Tak tady jsme freading velikost RGB třílůžkový, jeden pixel, a starý šířka je z INFILE do naší paměti. A že to bude celý ř. v tomto poli. Takže teď, chceme iterovat n časy vytisknout tento řádek do naší outFile n krát. A tak to je to, co tato smyčka se dělá. Tato vnitřní smyčky iterace ř. sám, přes pole, tisk Každý pixel v poli n krát. Takže nultý prvek je vytištěna n krát, první prvek je tištěný n-krát. A to je trochu o tom, jak budeme vodorovně škálovat v outFile, a tato smyčka, protože jsme opakování n krát, je to, jak budeme vertikálně stupnice. Tady dole vidíme, že musíme přidat polstrování na konci každého řádku. To je důvod, proč je to uvnitř pro smyčku že je vytisknout na n řádků jen tento jeden řádek z INFILE. Pak tady dole, budu přeskočit polstrování v INFILE, protože jakmile jsme hotovi s jednou řadou infile, my se nestaráme o co polstrování bylo. Chceme jen, aby se na druhém řádku. A pak budeme přecházet zpět a udělat vše, To opět na druhém řádku. Nakonec, když jsme hotovi s tím vším, můžeme uzavřít soubor_se_hrou, v blízkosti outfile, a návrat 0, protože jsme hotovi. Jmenuji se Rob, a to resize. [MUSIC PŘEHRÁVÁNÍ]