Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Práce s písmem.

Podobné prezentace


Prezentace na téma: "Práce s písmem."— Transkript prezentace:

1 Práce s písmem

2 Definice písma - obvyklejší, výpočetně dražší
Vektorové písmo - obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys Rastrové písmo - jednodušší, snadno se kreslí, obvykle méně hezké - každý znak specifikován malou obdélníkovou bitmapou

3 Vytvoření rastrového písma
naskenováním zvětšeného obrázku daného znaku - následná úprava jednotlivých pixelů designérem vytvořeny v programu - za základě náčrtku je vytvoří designér - používalo se k vytvoření speciálních písem pro monitory a tiskárny s nízkým rozlišením

4 Rastrová reprezentace
frame buffer - obvykle větší než je potřeba k uložení aktuálního obrazu na monitoru - rychlejší práce -> uložení font cache - používá se i k uložení právě zakrytých částí obrazovky

5 SRGP - pro práci s rastrovou grafikou (Simple Raster Grafics Package)
- copyPixel - automatické ořezání bitmapy znaků

6 Příklad proporcí cache

7 Rastrová reprezentace
font cache - výška malého a velkého písmene konstantou - šířka individuální pro každý znak - při vykreslovaní se mezi znaky vkládá mezera s pevně stanovenou šířkou v definici typu písma

8 Definice druhu písma strukturou Typedef struct {
int leftX; /* horizontal location */ int width; /* width of image in font cache */ } charLocation; canvasID cache; int descenderHeight, total Height; int interCharacter Spacing; /* Measured in pixel */ charLocation locationTable[128]; } fontCacheDescriptor;

9 Nevýhody rastrové reprezentace
- vyrovnání se s textovým řetězcem obsahujícím více druhů fontů musí být odchyceno a zajištěno aplikačním programem - různá font cache pro každou kombinaci druhu písma, velikosti a stylu - problémy s tvorbou stylu, hlavně kurzívou

10 Triky pro vytvoření různých stylů písma
Problémy se styly písma Triky pro vytvoření různých stylů písma - vyřešení problémů s velkým množstvím různých obrázků pro definici jednoho písmena - nevytváří „hezké“ písmena, třeba tečka nad „i“ pak není kroužek - pokřiví mezery mezi znaky, znesnadňuje výběr oblasti

11 Vektorová reprezentace
- abstraktní podoba, nezávislá na zařízení - polygonální a oblé tvary definované pomocí reálných parametrů - spline křivky - více velikostí z jedné reprezentace, jednoduché převracení, otáčení, vytváření stylů - každý tvar postačuje pouze pro omezený počet velikostí

12 Geometrický význam tvaru znaku
soběpodobnost - některé části musí mít stejnou šířku - musí být zachována určitá topologická charakteristika, vztahy mezi znaky písma Problémy při tvorbě pixelové reprezentace - při různých položeních vzoru ideálního písmene na bitmapu mohou vzniknout rozdílné kopie - výsledek nemusí být vůbec uspokojivý

13 Naskenováním písmene O může vzniknout nepříjemný výstupek.
Problémy při vytvoření bitmapy Naskenováním písmene O může vzniknout nepříjemný výstupek.

14 Problémy při vytvoření bitmapy
takovýmto efektům je třeba se vyhnout - různé programy založené na pravidlech pro vytváření bitmap znaků - písmena i tak musí být ručně doupraveny existují i další problémy - toto je jen jeden asi nejzřetelnější problém

15 Antialiasing u textu Antialiasing - potlačení roztřepenosti čar
- děje se ve spojitém prostoru efekty jako špičky, jamky a nestejnoměrné šířky zmizí velká spotřeba paměti

16 Odhad spotřeby paměti 1. odhad:
- 8 bitů na pixel, 4 styly, deset 128 znakových typů písma, deset velikostí = 50 MB paměti. 2.odhad: - 8 bitů na pixel, 4 styly, dva 128 znakových typů písma, pět velikostí, 8 „stupňů“ (phases) jak v horizontálním, tak vertikálním směru = 50 MB paměti.

17 Jiný přístup počítáme, až když je to nezbytné
- nezabíráme tak paměť znakem, který momentálně nepotřebujeme časově náročnější - vyžaduje přepočítání antialiasingu každého znaku, kdykoli je použit - výpočetně nepraktický - nutno použít adekvátní metodu pro urychlení procesu

18 Naimanova a Founierova metoda I
myšlenka - naskenujeme znak v nějaké velké velikosti a vytvoříme pro něj předlohu - každá předloha je rozdělena do několika obdélníčků - znaky menší velikosti jsou odvozeny od této předlohy jejím filtrováním

19 Naimanova a Founierova metoda II
reprezentace - výsledný znak je vytvořený z předlohy za použití filtrovací funkce - předloha - matice jednicek a nul typu m x m - filtrovací funkce – matice čísel, jejichž součet je 1 výpočet Pokud výsledný znak má být pole typu g x g (g je samozřejmě menší než m), tak na předloze vytvoříme vzorkovací mřížku velikosti taky g x g. V tomto bodě je spočítána hodnota každého bodu ve vzorku: Pro každý bod v filtrovacím poli se hodnota filtru vynásobí hodnotou bodu v předloze znaku a tyto výsledky se sečtou.Výsledné g x g pole vzorků je ten vyfiltrovaný znak.

20 Naimanova a Founierova metoda III
vylepšení Jakmile je předloha rozdělena do obdélníkových částí, dají se jednoduše v cyklu procházet všechny obdélníčky předlohy a určí se přínos na intensitě s použitím filtru jako tabulky. Nepočítá se tedy hodnota pro každý bod zvlášť.

21 Naimanova a Founierova metoda IV

22 Literatura Computer Graphics: Principles and Practice,
Foley, van Dam, Feiner, Hughes


Stáhnout ppt "Práce s písmem."

Podobné prezentace


Reklamy Google