0

text/texts.getBounds() のget boundsを計算するときにcotillion スタイルのフォントを操作すると、正しい結果が得られず、テキストの中間点が結果の四角形の Bottom_left ポイントと見なされます。

この件で私を助けてください。

4

1 に答える 1

0

ActionScript でグリフの実際のバウンディング ボックスを取得する方法はありますか? を参照してください。-- 逆 (文字の周りにスペースが多すぎる) を説明しているように見えますが、私を信じてください: それは同じ問題です。その投稿の提案があなたの問題を解決できるかどうかを確認してください。

文字は正方形のグリッド上にデザインされており、文字が接触しないようにするのはフォント デザイナーの責任です。これは、デザインの周りに小さな余白を残すことによって行われます。このボックスの左下が「左下点」、より正確には文字の原点です。ボックスの合計幅は、文字の送り幅(カーソルを右に移動する必要がある量) です。

通常、文字の周りには空白しかありません。結局のところ、すべての文字を互いに束ねるフォントは望ましくありません。ただし、いくつかの例外があります。たとえば、スペース文字には幅しかなく、画像はありません。「非スペーシング」アクセントはの幅を持つため、 のe後に非スペーシング"を入力すると、 のように見えるものが得られますë。そしてもちろん、キャラクターをオーバーラップさせるのはデザイン上の決定かもしれません。

これはあなたの "cotillion" ("script") フォントとどのように関連していますか? まあ、曲線と線の端は「箱から出して」突き出る必要があります-そうでない場合、そして箱が各文字全体を囲むのに十分な大きさである場合、文字間の間隔が大きく不均一になります。

どうやら、getBoundsテキストの送り幅のみを計算します - そして完全に正当な理由があります! フォントのほとんどすべてのアプリケーションで、重要なのは送り幅だけです。したがって、間違ったgetBounds値を返すのではなく、設計されたとおりの値を返します。

正確な領域を取得するには、テキスト エンジンの低レベル関数 ( FreeTypeにはこのための関数があります) を使用するか、リンクされた投稿に記載されているトリックを使用します: アウトラインに変換してこれらを測定するか、ビットマップ内に描画します。ピクセルカバレッジを確認します。

于 2013-10-25T15:39:36.477 に答える