úterý 6. května 2008

Canvas bude i s textem

Canvas je značka stará již čtyři roky. Prvně o ní u nás psal Petr Staníček v Průkopníci zítřka a vězni včerejška na Lupě v roce 2004. Její rozhraní je relativně usedlé a za poslední roky se zásadně nezměnilo (převážně jen kosmetické změny).

Jednoho rozšíření se ale canvas dočká. Hlavní kritikou canvasu bylo, že ačkoliv umí kompletně pracovat s 2D grafikou (3D je prozatím jen emulováno), neumí pracovat s textem. To canvas trochu degradovalo (jedno z jeho použití je třeba dynamická tvorba grafů).

Šlo to obejít buď vytvořením vlastní rutiny pro vykreslování písma (kdysi jsem na jeden takový projekt narazil), nebo šikovným pozicováním textových nodů přes canvas.

Ian Hickson včera oznámil, že canvas přeci jen bude o základní textové funkce rozšířen:
I have introduced the following APIs:

context.font
context.textAlign
context.textBaseline
context.fillText()
context.strokeText()
context.measureText()

They are defined here:

http://www.whatwg.org/specs/web-apps/current-work/#text

Pamatuju si, že další kritikou canvasu byla absence API pro kreslení přerušovaných čar (David Flanagan: Dashed lines in the <canvas> tag). To už není tak ožehavý problém (dá se emulovat mnohem snadněji než vykreslování písma), ale uvidíme, zda se do canvasu nakonec nedostane.

2 komentáře:

  1. Ahoj, s textem je to velice krusne - jak jsem se o tom presvedcil behem dnesniho dne. Nasel jsem do javascriptu celkem dost knihoven, ktere umi drawText pripadne drawString. Nektere nefungovaly, nektere ano. Problem nastal az pri velikosti pisma 8px - s moji prehistorickou grafickou kartou se to dalo hodne spatne precist. Napadlo me si udelat svoji knihovnu, ktera by vypisovala pismenka pomoci drawRect :-). Ale chybi cas...

    Momentalne to resim div tagama, ktere jsou nad canvasem. Je to silena prace ;)

    Jinak aby muj komentar byl alespon k necemu uzitecny, tak Firefox 3 uz umi vypisovat text http://developer.mozilla.org/en/docs/Drawing_text_using_a_canvas - o integraci do ostatnich prohlizecu nema ani cenu psat :)

    OdpovědětVymazat
  2. Podporu v dalších prohlížečích bych čekal tak během půl až jednoho roku (tedy do Opery a WebKitu).

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.