【特集】
canvasタグは、Webページ内に埋め込むことのできるグラフィック要素で、JavaScriptを用いて自由に図形や画像の描画を行える。
Internet Explorer以外のブラウザではすでにサポートされている。また、explorercanvasというライブラリを使用すれば、Internet Explorerでもcanvasをエミュレートすることができる。
canvasを使用するには、まず幅(width属性)と高さ(height属性)を指定してcanvasタグを指定する必要がある。またcanvasタグ内には、canvasをサポートしていないブラウザで閲覧された際に表示する代替コンテンツを記述することができる。
<canvas id="canvas1" width="300" height="300">
このページを正しく表示するにはcanvas要素をサポートしたブラウザが必要です。
</canvas>
上のコードだけでは、キャンバスを配置しただけで何も表示されない。キャンバスにグラフィックを描画するには、canvasのDOMオブジェクトが持つgetContext()メソッドを呼び出し、描画コンテキストを取得する必要がある。
// 描画コンテキストの取得
var ctx = document.getElementById("canvas1").getContext("2d");
描画コンテキストは、矩形や円、線、テキスト、画像などを描画するメソッドを持つほか、回転や変形などの変換操作を行うこともできる。
以下の例は、画像描画(drawImageメソッド)と座標変換(transformメソッド)を用いて、画像の鏡像を作成する例だ。drawImageを用いて画像を描画するためには、対象画像のロードが完了している必要があるため、Imageオブジェクトのonloadイベントを捕捉して処理を行っている。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function init() {
// img要素を作成
var image = document.createElement("img");
// 画像の読み込みが完了したら
image.onload = function() {
var canvas = document.getElementById("canvas1");
// 描画コンテキストを取得
var ctx = canvas.getContext("2d");
// 画像を描画
ctx.drawImage(image, 0, 0);
// 画像を半透明にし、画像を反転させて描画
ctx.globalAlpha = .1;
ctx.transform(1, 0, 0, -1, 0, image.height * 2);
ctx.drawImage(image, 0, 0);
};
// 画像のURLをセットし、読み込み開始
image.src = "http://journal.mycom.co.jp/images/ci_mycomjournal.gif";
}
</script>
</head>
<body onload="init()">
<canvas id="canvas1" width="300" height="500">
</canvas>
</body>
</html>
|
|
実行結果 |
canvasについては多くのブラウザが実装済みなこともあり、良質なチュートリアルが数多く存在する。Mozillaのチュートリアルや、HTML5.jpのチュートリアルがお薦めだ。
| 超新星残骸中にないはずの多量の一酸化炭素 - 天文衛星「あかり」が発見 [21:42 2/9] |
| 【レポート】ROBO-ONE委員会 - 第20回大会でのROBO-ONE Lightの開催を決定 [20:27 2/9] |
| 火星に海の存在を示す有力な証拠が発見される - ESAが発表 [18:48 2/9] |
| iOS向けSPDYライブラリが登場、普及はじまるSPDY [11:57 2/9] |
| GitHubのアクティブプロジェクト、もっとも多いのはMITライセンス [11:42 2/9] |
|
大東駿介、改名後初の写真集発売--名前を変えたのは「自分の決意表明です」 [00:30 2/10] エンタメ |
|
悲しいけれど超ウマい!極貧芸能人が編み出した奇跡のアイデアレシピベストテン! [00:06 2/10] キャリア |
|
みんなが聴きたい女性アーティスト・ラブソングベスト30を思い出の映像と共に発表! [00:05 2/10] キャリア |
|
でかっ!体長12mもあるジンベイザメが水揚げされる(動画) [00:04 2/10] キャリア |
|
間違って送ったFacebookの友達リクエストを取り消す方法 [00:03 2/10] キャリア |