私はそうのように別々のキャンバスに、いくつかのテキストをレンダリングしようとしています:HTML5キャンバスにテキストをフィットさせるには?
var tmpCanvas = document.createElement("canvas");
var tmpContext = tmpCanvas.getContext('2d');
tmpContext.textAlign = 'center';
tmpContext.font = size + 'px';
tmpCanvas.width = tmpContext.measureText(txt).width;
tmpCanvas.height = size;
tmpContext.fillStyle = "#000";
tmpContext.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);
tmpContext.fillStyle = color;
tmpContext.fillText(txt, tmpCanvas.width/2, tmpCanvas.height/2);
このキャンバスは、メインキャンバスの中心にレンダリングされます。私はこれをやっている
context.drawImage(cachedText, (d_canvas.width/2) - (cachedText.width/2), (d_canvas.height/2) - (cachedText.width/2), cachedText.width, cachedText.height);
、テキスト理由描かれているのはかなり複雑なので、私は描画操作を何度も繰り返したくはありません。しかし、問題は、キャンバスサイズをテキストサイズと同じに設定したにもかかわらず、テキストがキャンバスよりも小さく、中心にないことです。上記のように、キャンバス/イメージオブジェクトの上にレンダリングされたテキストを作成するにはどうすればよいですか?ここで
は、問題を説明するためのフィドルです:http://jsfiddle.net/x4t1vjam/
私は200にサイズを変更すると、それは本当に悪く見えます。キャンバスの高さは変化しているようですが、テキストは変わりません。 – user3024235
高さをサイズに設定しているので、ここでは 'tmpCanvas.height = size' - ここではいくつか間違いがあります。私は他の人を通って私の答えを更新しましょう。 – Lewis
ええ、フォントサイズをそれに設定しているので、テキストもそのサイズに拡大する必要があります。右? – user3024235