を呼び出す前に、.scale(2,2)
をキャンバスに呼び出すと、画面の表示サイズを意味する "CSSピクセルでのテキストの先行幅(インラインボックスの幅)"がMDNによると、幅が2倍になります。しかし、Chromeのテストでは、.measureText()
はキャンバスを拡大縮小しても変化しないことがわかりました。 .measureText()
は、使用する文字列が同じであれば、別のキャンバスでその関数を呼び出しても同じものを返します。CanvasRenderingContext2D.measureText()は現在の変換で変更されますか?
私はMDNを読んでいないのですが、現代のブラウザはすべてChromeと同じように動作すると思いますか?私は事前レンダリングのためのオフスクリーンキャンバスを使用しようとしているが、オフスクリーンキャンバスの幅が、私は表示する必要がどのくらいのテキストによって決定される
:私はこの質問をしたのはなぜ
。したがって、オフスクリーンのキャンバスを作成する前に私のメインキャンバスで.measureText()
と呼ぶことをお勧めします。
CSSピクセル単位です。それがレンダリングされるサイズになることを意味するものではありません。あなたの問題では、現在のscaleXを追跡して 'measureText()。width()* scaleX'を実行する必要があります。 – Kaiido