# Pokročilá bitmapová grafika ## Změna měřítka - změna velikosti = změna počtu pixelů - obvykle změna na ose x a y **Princip** - stanovit hodnoty v nových bodech - výsledek by měl být stejný, jako bychom původní signál vzorkovali s tímto rozlišením - zvětšení 4x metodou nejbližšího souseda - nejjednodušší, nejrychlejší - obvykle nevhodné - z [00 40 80 80] dostanu [00 00 00 00 40 40 40 40 80 80 80 80 80 80 80 80] - zvětšení 4x metodou (bi)lineární interpolace - jednoduché a rychlé - stardardní volba pro většinu grafických knihoven - vhodné jen pro malá zvětšení - z [00 40 80 80] dostanu [00 10 20 30 40 50 60 70 80 80 80 80 80 80 80 80] - zvětšení 4x metodou (bi)kubické interpolace - pro každou dvojici sousedních pixelů najít kubickou funkci $f(t)$ takovou, že $f(0)$ = první pixel, $f(1)$ = druhý - stanovit hodnoty $f(0.25), f(0.5)$ a $f(0.75)$ - vhodné zejména pro větší zvětšení - lépe zachovává hrany - podstatně pomalejší **Zvětšení kx** - k je reálné číslo > 1 **Zmenšení kx** - k je reálné číslo z (1, 2) - k je reálné číslo >= 2 - problém s kvalitou všech tří metod Zmenšení 2x metodou nejbližšího souseda - jedná se o princip vzorkování - každý druhý pixel vynechá - nejjednodušší možné - použitelné v praxi pro velmi rychlé náhledy - vynechání každého druhého pixelu **Aliasing** - vzniká při vzorkování obrazu s opakujícím se vzorem, pokud vzorkovací frekvence $f_{s}$ je srovnatelná s frekvencí $f_{p}$ opakování vzoru - $f_{s} = 1 /$ vzdálenost středů sousedních pixelů - $f_{p} = 1 /$ vzdálenost začátků opakovaného vzoru - $f_{s} > 2f_{p} \to$ frekvence již nejsou srovnatelné + úplné odstranění prakticky nemožné + potlačení (anti-aliasing) + nebude tolik rušivý + metoda tzv. super-samplingu + relativně rychlé + ClearType + využívá znalostí rozložení R, G, B prvků displeje + mění barvu krajních pixelů pro dosažení průměrování **Mip-maping** - technika pro zobrazování velkých obrázků na různé úrovni přiblížení - obrázek bývá rozřezán na rozumně velké bloky (např. 256x256 px) - bloky jsou zmenšeny na různé rozměry - lze použít náročné metody díky využití pre-procesingu - při zobrazení je možno - vybrat nejvhodnější vygenerované rozlišení a jeho výřez zobrazit - vybrat nejvhodnější vyšší rozlišení a změnit jeho měřítko tak, aby to vyhovovalo požadavkům **Konvoluční filtrování** - používá se např. pro - rozmazání obrázku pro eliminaci šumu (Gaussovský filtr) - detekce hran v obrázku - vytvoření vrženého stínu - obdoba bilineární filtrace - žádné pixely nezahazujeme ## Kreslení do bitmapy - doplnění popisků, anotace, ... **Manuální** - programátor mění obsah jednotlivých pixelů bitmapy - např. rozpoznání obrazu či přebarvení obrázku **Automatické** - nad bitmapou se vytvoří grafický kontext - kreslí se do grafického kontextu voláním obvyklých metod - např. doplnění vektorové grafiky do obrázku (popisky, křivky silnic, šipky, ...) - klíčové pro tzv. double-buffering **Double buffering** - místo kreslení rovnou na obrazovku kreslíme do bitmapy o stejné velikosti - výsledek se poté zobrazí na obrazovku (1:1) - pomalejší, ale nezbytné pro animace **Vodoznak** - nejčastěji pro účely copyrightu - může být viditelný (neměl by jít snadno retušovat) - může být neviditelný - obrázek není viditelně poškozen - data vodoznaku skryta (modifikují se barvy pixelů) - používají se různé algoritmy - autor může dokázat, že se jedná o jeho obrázek - možno použít i pro ověření pravosti dat **Alfa kanál** - doplňuje barevnou informaci (např. RGB) o to, zda pixel je průhledný (0) či nikoliv (1) - částečná průhlednost = hodnota z intervalu 0.0 - 1.0 - v praxi nejčastěji ukládán do 8 bitů (256 úrovní) - umožňuje snazší spojení dvou bitmap do sebe **Vrstvy** - výsledný obraz vznikne složením obrázků přes sebe - vrstvy lze ukládat/načítat oddělené **Alfa kompozice** - vrstvy se skládají na základě informace o průhlednosti (tzv. alfa) - může být specifikována pro celý obrázek nebo zvlášť pro jednotlivé pixely **Maximum (lighten)** - černá = pozadí - bílá = to, co má být vidět **Minimum (darken)** - opak maxima **Multiply** - lokální ztmavení obrázku X a Y určuje míru ztmavení