2012/05/09更新

[HTML5] Canvasで文字を描く。そして陰もつけてみた。

このエントリーをはてなブックマークに追加      

今日は、久しぶりにHTML5のお話。Canvasにて文字を表現する方法を学んだので、ブログに記載したいと思います。

Canvas Text Image




Canvasに文字を描くText

Canvasで文字を描く為に、fillTextとstrokeTextの2つのメソッドが用意されています。その使い方例が以下となります。

<canvas id="myCanvas" style="width:500px; height:500px; border:1px solid #aaaaaa;"></canvas>
<script type="text/javascript">
  var canvas = document.querySelector("#myCanvas");
  var context = canvas.getContext('2d');

  // draw Texts
  context.font = "18px Arial";
  context.fillStyle = 'rgba(0, 0, 0, 1)';
  context.fillText('This is first word', 10, 25);
  context.strokeStyle = 'rgba(255, 0, 0, 1)';
  context.strokeText('This is second word', 10, 60);
</script>

fillTextとstrokeTextメソッドには、それぞれ以下の引数を指定します。それぞれのメソッドは、contextの保持するメソッドのようですね。

メソッド第1引数第2引数第3引数第4引数(Optional)
fillText表示する文字列開始x座標開始y座標横幅
strokeText表示する文字列開始x座標開始y座標横幅

文字を表示する時のフォントや色の指定は、context.fontやcontext.fillStyle, context.strokeStyleにて指定します。サンプルは上のコードを参考にして頂けると幸いです。





文字に陰もつけてみた

陰をつける為には、context.shadowColor, context.shadowOffsetX, shadowOffsetY, context.shadowBlurに値を設定してオブジェクトや文字を描画する事で、陰をつけることが出来ます。以下がサンプルコードとなります。

<canvas id="myCanvas" style="width:500px; height:500px; border:1px solid #aaaaaa;">
</canvas>
<script type="text/javascript">
  var canvas = document.querySelector("#myCanvas");
  var context = canvas.getContext('2d');

  // text with shadow
  context.shadowColor = 'gray';
  context.shadowOffsetX = 4;
  context.shadowOffsetY = 0;
  context.shadowBlur = 4;
  context.strokeText('Text with shadow', 10, 95);
</script>

陰に関するプロパティの意味は以下の内容となります。

プロパティ意味
context.shadowColor陰の色
context.shadowOffsetX陰を対象からどれくらいずらすか。正数は右にずれる。
context.shadowOffsetY陰を対象からどれくらいずらすか。正数は下にずれる。
context.shadowBlur陰をどれだけぼかすか。正数を指定する。

ちなみに、Canvasで文字を描いたり、陰をつけると以下のような表示になるようです。

f:id:yoheiM:20110803233913p:image





参考サイト

以下のページを参考にしました。ありがとうございます。

http://www.w3.org/TR/2dcontext/#text

http://www.html5.jp/canvas/ref/method/fillText.html



最後に

Canvasは色々とやったけど、面白い機能だなと実感しました。文字も描けて、ビデオとも連携出来て、もちろん絵も描ける。画像としても保存出来る。色々と出来てたのしそうです。







こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。