FAV-ZCU/KIV UPG/05. Pokročilá bitmapová grafika.md

4.5 KiB

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í