HTML5 Canvasでシャドウ(影)を描く方法 ― shadowColor・shadowOffset・shadowBlurの使い方
HTML5のCanvas(キャンバス)には、描画した図形やテキストの周囲に美しい影(シャドウ)を作成する機能が備わっています。影の見た目は、以下の4つのグローバル属性によって制御され、これらの設定はすべての描画操作に反映されます。
| 番号 | プロパティと説明 |
|---|---|
| 1 | shadowColor [ = value ] 現在の影の色を返すプロパティです。値を設定することで、影の色を変更できます。 |
| 2 | shadowOffsetX [ = value ] 現在の影のX方向(横方向)のオフセット量を返すプロパティです。値を設定することで、影の横へのずれを調整できます。 |
| 3 | shadowOffsetY [ = value ] 現在の影のY方向(縦方向)のオフセット量を返すプロパティです。値を設定することで、影の縦へのずれを調整できます。 |
| 4 | shadowBlur [ = value ] 影に適用されているぼかしの度合いを返すプロパティです。値を設定することで、ぼかしの強さを変更できます。 |
シャドウ描画のサンプルコード
次のコードを実行すると、テキストに影を付けて描画することができます。
<!DOCTYPE HTML>
<html>
<head>
<style>
#test {
width: 100px;
height:100px;
margin: 0px auto;
}
</style>
<script type>
function drawShape(){
// DOMを使ってcanvas要素を取得
var canvas = document.getElementById('mycanvas');
// canvas非対応の環境では実行しない
if (canvas.getContext){
// getContextで2D描画コンテキストを取得
var ctx = canvas.getContext('2d');
ctx.shadowOffsetX = 2;
ctx.shadowOffsetY = 2;
ctx.shadowBlur = 2;
ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
ctx.font = "20px Times New Roman";
ctx.fillStyle = "Black";
ctx.fillText("This is shadow test", 5, 30);
} else {
alert('You need Safari or Firefox 1.5+ to see this demo.');
}
}
</script>
</head>
<body id = "test" onload = "drawShape();">
<canvas id = "mycanvas"></canvas>
</body>
</html>
コードの解説
このサンプルでは、まずdocument.getElementById()でcanvas要素を取得し、getContext('2d')によって2D描画コンテキストを取得しています。続いて、shadowOffsetXとshadowOffsetYで影のずれをそれぞれ2ピクセルに設定し、shadowBlurでぼかしの強さを指定、shadowColorには半透明の黒「rgba(0, 0, 0, 0.5)」を指定しています。
最後にfillText()メソッドでテキストを描画すると、事前に設定した影が自動的に適用されます。なお、ブラウザがCanvas APIに対応していない場合は、アラートによって対応ブラウザ(SafariまたはFirefox 1.5以降)が必要である旨が通知される仕組みになっています。
-
HTML5のdrawImage()メソッドを使ってCanvasに画像を描画する方法
HTML5の drawImage() メソッドは、キャンバス(canvas)上に画像・別のcanvas・動画などを描画するために使用します。画像の一部だけを切り取って描画することもでき、描画時にサイズを拡大・縮小することも可能です。 drawImage()メソッドのパラメータ一覧 drawImage() メソッドで指定できるパラメータとその説明は以下の通りです。 番号パラメータと説明 1img描画対象となる画像(image)、canvas、または video を指定します。 2sxクリッピング(切り抜き)を開始するx座標。省略可能です。 3syクリッピングを開始するy座標。省略可能です
-
HTML5のCanvasで画像を描画する方法【drawImage()の使い方を解説】
HTML5の<canvas>タグは、JavaScriptなどのスクリプトを使ってグラフィックスやアニメーションを描画するための要素です。HTML5で新たに導入されたタグであり、ブラウザ上で動的なビジュアル表現を実現できます。 HTML5キャンバスで画像を扱うには、drawImage()メソッドを使用します。このメソッドは、指定した画像をキャンバス上にそのまま描画します。 drawImage()メソッドの基本構文と引数 drawImage()メソッドの基本的な呼び出し形式は次の通りです。 ctx.drawImage(img, x, y); 各引数の意味は以下の通りです。 img: