問題タブ [fontmetrics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4113 参照

java - Android デバイスで実行すると、FontMetrics が正しくありません。シミュレーターファイン

Android デバイスの解像度に応じてテキストを動的にスケーリングする Android アプリがあります。Android シミュレータで事前定義されたすべての解像度でこのコードをテストしましたが、コードは正常に動作します。(これには、HTC Desire および Motorola Droid と同じ解像度が含まれます)

HTC Wildfire でも問題なく動作します。

シミュレーターのスクリーン ショットを次に示します。

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

ただし... HTC Desire でこれを試してみたところ、Motorola Droid を使用しているユーザーから、フォントが正しくスケーリングされていないという報告がありました。

ここに画像の説明を入力

テキストが切り落とされていることに注意してください。

これらの特定のデバイスでこれが機能しない理由はありますか?

私は現在、テキストの利用可能な高さに応じてテキストを縮小する関数を持っています...次のようなものです:

これがいくつかのデバイスでのみ発生する理由は何ですか? どうすれば修正できますか?ここで検討する必要がある、私が知らない別のフォントメトリックはありますか? スケールや DPI が好きですか?

ありがとう。

0 投票する
0 に答える
202 参照

java - FontMetrics のラグの問題

FontMetrics の Oracle ドキュメント ページから:

「これらのメソッドの実装は非効率的であるため、通常はより効率的なツールキット固有の実装でオーバーライドされることに注意してください。」

誰でも提案できますか?私が尋ねる理由は、文字列の幅を測定するために fontMetrics を実装したためで、計算に約 0.5 秒かかりました。ウィンドウがペイントされるたびにこれを数回行う必要があるため、非常識なラグを発生させずに文字列の幅を取得する方法はありますか?

実際に何か間違ったことをした場合に備えて、ラグの原因となっているコードは次のとおりです。

ありがとう :)

0 投票する
2 に答える
8713 参照

java - Javaでフォントを変更して文字列を描画するための正しい構文は何ですか?

誰かが私の構文をここで確認できますか?「TimesNewRoman」、「Arial」、「Verdana」をにfontName渡し、8、12、15などを使用していfontSizeます。ここでフォントが変更されることはありません。画像の上にテキストを書き込むためにこれを行っています。

0 投票する
4 に答える
14196 参照

java - Java:ピクセル単位で特定の高さのフォントを取得する

を使用してフォントのレンダリングされた高さを決定するのは簡単ですFontMetricsが、その逆はどうでしょうか。ピクセル単位の特定の高さに収まるフォントを取得するにはどうすればよいですか?

Verdana「アセンダーからディセンダーまで30ピクセルの高さのサイズでください。」

これをJavaに要求するにはどうすればよいですか?

0 投票する
2 に答える
4217 参照

.net - 単一のグリフ メトリックを取得する (.net)

選択したフォントから単一のグリフに関する完全な情報を取得するにはどうすればよいですか (たとえば、Arial -> 記号「A」)

この図は、私が見つける必要がある変数を説明しています。

グリフ メトリック

0 投票する
3 に答える
948 参照

java - Java で正しいフォント幅を返す API はどれですか?

JavaのどのフォントAPIが正しい幅を返しますか? 現在使用している

これにより、画像と表示に正しい値が返されます。しかし、Java SE 6 での印刷では間違っています。Java 7 では、すべて正しいです。違いは非常に小さいです。ただし、行末の「i」が 1 つ失われています。まったく同じ値を印刷して受け取ります。しかし、テキストは、印刷グラフィック上により多くのスペースを必要とします。

アンチエイリアスと分数メトリックを使用します。

私は異なるAPIがあることを知っています。しかし、推奨される API は何ですか?

0 投票する
3 に答える
8095 参照

java - Java: FontMetrics のアセントが正しくない?

javadoc を見ると、次のように表示されFontMetric.getAscent()ます。

フォント アセントは、フォントのベースラインからほとんどの英数字の上端までの距離です。フォントの一部の文字は、フォント アセント ラインより上にある場合があります。

しかし、簡単なデモ プログラムを作成したところ、次のように表示されました。 ここに画像の説明を入力

テキストの各行の 4 本の水平線は次のとおりです。

  • ベースラインの位置がgetDescent()
  • ベースライン位置
  • によって上げられたベースライン位置getAscent()
  • によって上げられたベースライン位置getHeight()

getAscent() 行と文字の先頭の間のスペースに注意してください。ほとんどのフォントとサイズを見てきましたが、常にこのギャップがあります。(一方、フォントの下降はちょうどいいように見えます。)何が得られますか?

0 投票する
4 に答える
2183 参照

java - Java:フォントのキャップハイトとエックスハイトをどのように調べますか?

FontMetricsには、フォントのキャップハイトエックスハイトのゲッターはありません。

これらの値を取得するにはどうすればよいですか?

キャップハイトに関する限り、特定の大文字については、文字の上昇がキャップハイトと同じであるという保証はありません。(たとえば、大文字のHは上部が平らであるとは限りません)

xの高さに関しては、おそらく「x」の高さと同じだと思いますが、これも保証はありません。


編集:Grr!特定の文字シーケンスを試したところFontMetrics.getBounds()FontMetrics.getLineMetrics()高さについては常に同じ答えが得られました(getBounds()は、明らかに幅によって異なります)。hasUniformLineMetrics()このメソッドには、文字セットをカバーするために複数のフォントを使用するfontmetricsに関する注記がありますが、これは個々の文字ではなく、文字グループをカバーします。

0 投票する
0 に答える
148 参照

java - インストールされていないフォントを使用してLineBreakMeasurerを呼び出す

ここでの答えはノーだと思います(つまり、fontmetricsが存在しない場合、どうすればよいでしょうか)。しかし、私は尋ねたほうがいいと思います。

Linuxボックスで実行されることが多いJavaプログラムのソフト改行を理解する必要があります。分割するテキストに指定されているフォントはWordファイルからのものであるため、TimesNewRomanなどのWindowsシステムで見つかったフォントを使用します。

ほとんどのLinuxシステムには、TimesNewRomanがインストールされていません。指定されたフォントがインストールされていない状態で正確なブレークを取得する方法はありますか?

そして2番目の質問-WindowsフォントをLinuxボックスにコピーすると、Windowsシステムで得られるものとは異なるブレークが得られることがわかりました。fontmetricsはO/Sおよび/またはJava実装に調整する必要がありますか?

ありがとう-デイブ

0 投票する
2 に答える
1054 参照

shell - imagemagickフォントメトリクス-グリッドにテキストを配置する方法は?

次の画像を見てみましょう。

ここに画像の説明を入力してください

水平グリッドがあり、このグリッドにテキストを配置したいと思います。上記の例は間違っています。なぜなら、私が望んでいるのは、各文字がグリッドのセルの1つに正確に配置されているからです。

独自のコマンドで各文字を配置することなく、これを実現するためにimagemagickのテキスト出力を調整できるかどうか疑問に思います。

いくつかの追加の事実:

  • シェルスクリプトのimagemagickを使用しています
  • 私はimagemagickのMVGでかなり複雑な描画を行っているので、テキストをMVGコマンドで配置できると便利です。
  • ソリューションで必要な場合は、グリッドの幅を数ピクセル調整できますが、もちろんすべてのセルの幅は同じである必要があります
  • 私はいつも同じ固定幅フォント(Courier)を使用しています
  • シェルスクリプトのフォントメトリックを解析し、この情報を使用してテキストコマンドに値を適用することができます
  • 私は水平方向の配置のみを気にします。各行を個別にレンダリングするため、垂直方向の配置は重要ではありません。

このすべてを念頭に置いて-私の問題の解決策はありますか?

どうもありがとう!