HTML5 Canvasで小数フォントサイズを実現する方法
HTML5 Canvasで小数フォントサイズを扱うテクニック
HTML5 Canvasでは、小数点以下を含むフォントサイズ(例:12.5px)を直接指定すると、ブラウザによって描画結果が異なる場合があります。そんなときに有効なのが、非表示キャンバスと drawImage() を組み合わせた手法です。
基本的な考え方
まず初期化時に、標準のフォントサイズでテキストを描画しておきます。続いて measureText() を使い、そのテキストの行の長さ(幅)を計測して基準値として保存します。
実装の手順
非表示のキャンバス(tmpCanvas)にテキストをレンダリングし、その後 drawImage() を使ってメインキャンバスへ、ズーム率(zoom)に応じた倍率を掛けて描画します。これにより、事実上の「小数フォントサイズ」での描画が可能になります。
ctx.font = (font_size * zoom) + "px Georgia";
ctx.fillText(mytext, 0, 0);
var s = (iniLineLength * zoom) / ctx.measureText(mytext);
mainContext.drawImage(tmpCanvas, x, y, pw * s, ph);
実装のポイント
- 初期化時に一度だけテキストを描画し、基準となる行の長さ(iniLineLength)を記録しておく
- ズーム時には
ctx.measureText()の計測結果と比較し、スケール係数 s を算出する drawImage()の幅指定に s を掛けることで、任意の倍率でテキストを正確に再描画できる
この方法なら、Canvasが本来サポートしていない細かいフォントサイズの制御も、描画品質を保ちながら実現できます。ズーム機能付きのエディタやビューアなど、精密な文字描画が必要なアプリケーションで特に有用です。
-
HTML5のCanvasで画像を描画する方法【drawImage()の使い方を解説】
HTML5の<canvas>タグは、JavaScriptなどのスクリプトを使ってグラフィックスやアニメーションを描画するための要素です。HTML5で新たに導入されたタグであり、ブラウザ上で動的なビジュアル表現を実現できます。 HTML5キャンバスで画像を扱うには、drawImage()メソッドを使用します。このメソッドは、指定した画像をキャンバス上にそのまま描画します。 drawImage()メソッドの基本構文と引数 drawImage()メソッドの基本的な呼び出し形式は次の通りです。 ctx.drawImage(img, x, y); 各引数の意味は以下の通りです。 img:
-
HTML5のCanvasで使える無料ライブラリとは?おすすめ3選をわかりやすく解説
Webサイトにインタラクティブな要素を追加したいなら、Canvas用の無料ライブラリを活用することで開発作業を大幅に効率化できます。まずは、HTML5でキャンバスを作成する基本方法から見ていきましょう。HTML5のcanvasタグの基本HTMLの<canvas>タグは、JavaScriptなどのスクリプトを使ってグラフィックやアニメーションを描画するために使用される要素です。このタグはHTML5で新たに導入されました。以下のコードを実行すると、HTML5でキャンバスを作成できます。サンプルコード<!DOCTYPE html> <html> &n