問題タブ [kerning]
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.
java - Java2D でフォントのカーニング情報にアクセスする
少し背景..
JavaとLWJGLを使用して OpenGL ゲームを作成中です。TextRenderer
キャッシュされたグリフのページを使用してテキストをレンダリングするクラスを作成しました。グリフ自体は Java2D で にレンダリングされBufferedImage
、グリフ測定値とともにテクスチャ ページにパックされます。TextRenderer
キャッシュされた情報を使用して、テクスチャ付きのクワッドとしてキャラクターを描画します。
これはすべてうまく機能しますが、カーニングの欠落という 1 つの点を除きます。確かに、テキストはそのままできれいに見えるので必要ではありませんが、フォントのカーニング情報にアクセスできれば、品質が向上します。
そして質問は..
Windows、Linux、および MacOS X 間で移植可能な方法で、プレーンな Java を使用してカーニング情報を取得することは可能ですか? 私が書いたとき、TextRenderer
私は簡単に周りを見回しましたが、そのような方法を見つけることができませんでした..
考えられる解決策の 1 つ
純粋な Java でこれを行う方法がない場合は、Freetypeを使用して別のツールを作成することを考えていました。機能ページに記載されているとおり:
FreeType 2 は、カーニング距離、グリフ名、垂直メトリックなど、他の同様のフォント エンジンでは得られない情報を提供します。
このツールは、一般的な文字のカーニング ペアを、テキスト レンダラーが読み込んで使用するファイルに保存します。ですから、皆さんがより良い代替案を思いつかない場合、これはおそらく私がすることです. :)
fonts - rxvt がフォントの間隔を数マイル離すのを止める方法は?
MinGW/MSYS の最新リリースをインストールしました。退屈な Windows コマンド プロンプトで rxvt ターミナルを使用するのが好きです。しかし、この新しいビルドは文字のスペースが多すぎます: 私が試したほとんどのフォントはめちゃくちゃです - Courier New (ttf)、Consolas (ttf)、または PC6X13 (fon) でさえ。
少なくとも読みやすいので、プレーンな OLD Courier で立ち往生しています。そこに解決策はありますか?簡単な解決策が好まれます。ソース コードにパッチを当てて rxvt を再コンパイルするのは好きではありません。
text - カーニングをユニスクライブ
職場では、テキスト文字のカーニングをより適切にサポートするために、アプリケーションのテキスト レンダリングを改善するという任務を負っています。私たちのアプリケーションは、テレビに表示される画像を生成するため、画質が最も重要です。したがって、生成する出力の外観を少し改善するだけでも非常に役立ちます。
現在のテキスト エンジンは、理想的なソリューションと思われる Uniscribe を使用して実装されています。hereで述べたように、複雑なスクリプトを使用して、コンテキストを意識した方法で合字の置換をサポートしています。また、右から左へ記述する言語と BiDi も処理します。アラビア語/筆記体言語を完全にレンダリングできるようにする必要があるため、これはすべて重要です。
したがって、Uniscribe がグリフ カーニング情報を出力していないように見えるのはかなり奇妙に思えます。問題を示すスクリーンショットを添付しました。
代替テキスト http://www.aliparr.net/kerning.jpg
私のアプリは、すべてのグリフが「モノスペース」で表示されるという点で、メモ帳と同じように機能します。Photoshop CS2 では、「T」の上部にあるブリッジが「e」の上にうまく張り出していることに注目してください。これを再現したい。
私は Pango/Freetype などの他の API を認識していますが、Uniscribe が他のすべてに優れている場合、このタスクの最後の 1% を実行するためだけにそれらすべてを含めるのは、かなり重量級のソリューションのようです。
Uniscribe を使用する手順がありませんか? これに対する最善の解決策は何ですか?Freetype は、既存の Uniscribe ソリューションと統合できるように、軽量な方法でカーニング情報をエクスポートできますか?
注意: Windows で実行する必要があるだけです。プラットフォームの移植性は、ありがたいことに、今心配する必要がある問題ではありません。
事前に乾杯!
c++ - グリフカーニング情報の抽出C++
Uniscribeのグリフカーニングについて以前の質問をしましたが、まだ回答がありません。さらにgoogleなどで読んだ後、Uniscribeはフォントからのグリフカーニング情報の抽出をサポートしていないようです。
したがって、簡単なフォローアップの質問があります-フォントから指定された文字列のグリフカーニング情報を抽出する良い例(できればC ++コードを使用)はありますか?
Pango、QT、ICUのいずれかがこれを実行できるとさまざまな場所で言及されていますが、ドキュメントは地上では少し薄いため、どこから始めればよいかわからないのです。
私を正しい方向に向ける助けはありがたいことに受けました。グリフを希望の方法でレンダリングするためのコードがすでに用意されています。拡張されたカーニング情報を取得しているだけなので、グリフをもう少し適切に配置できます。
ありがとう、
android - Android TextViewでテキストカーニングを調整するには?
Android の文字間の間隔を調整する方法はありTextView
ますか? これは通常「カーニング」と呼ばれていると思います。
私はandroid:textScaleX
属性を認識していますが、それは文字を間隔とともに圧縮します。
wpf - WPFでカーニングを有効にするにはどうすればよいですか?
WPFTextBlockでカーニングを有効にしようとしています。
ただし、KerningをTrueまたはFalseに設定しても、違いはないようです。私が間違っていることは何ですか?
vb.net - vb.net でのカーニング
vb.net でカーニング (文字間のスペース) を変更する方法を知っている人はいますか? たとえば、「STRING」を「STRING G」に変更したいと思います。可能であれば、カーニングを自由に指定できる独自のフォントを作成できるようにしたいと考えています。前もって感謝します!
.net - System.Drawing.Graphics.DrawString() でカーニングを変更する
System.Drawing.Graphics クラスと DrawString() メソッドを使用して、画像にテキストをレンダリングしています。
この画像のテキストを非常に具体的な方法で生成して、ピクセルごとに正確に既存の画像と一致させる必要があります。
問題は、DrawString() によって生成されたテキストが、既存の画像内のテキストとは異なるカーニングを持っていることです (私の最善の推測では、文字あたり約 0.5 ~ 1 ピクセルです)。
この名前空間とメソッドを使用しているときにカーニングを変更できるかどうか、誰か教えてもらえますか?
また、これは私たちが使用しているカスタム フォントであり、これをオープン タイプ (ソース イメージで使用) から True タイプに変換する必要がありました。この段階でカーニングが変更された可能性はありますか?
iphone - iPad/iPhone フォントの行送りとカーニング
インターネットで検索しましたが、明確な詳細を見つけることができません。
uilabels、textfields、またはtextviewsのリーディングとキーイングを指定する方法はありますか?
先頭とキーのペアごとにカスタム フォントを作成することもできますが、これは少しやり過ぎのようです。
text - Firefox のようなアプリケーションはどのようにテキストの高さを効率的に計算しますか?
高速なアプリケーション (ここでは Safari がより良い例かもしれません) が非常に長いテキスト ページ (たとえば、チャット ログや巨大なドキュメント) の高さを計算するためにどのような手法を使用しているかに興味があります。
同じ行の高さのテキストが大量にあることを考えると、これはすでにそれらの行の数を掛けることができるものです。<p>
ただし、特定の幅で何行にまたがるかを知るにはどうすればよいでしょうか?
私ができることは、彼らが:
- すべての文字の幅を計算し、すばやく追加できるように保存します。
- それを使って単語の幅を計算し、
- ブロックレベルの幅と比較しながら、必要に応じて行を追加しながら、単語とスペースの幅を追加します。
加算と比較は、GDI+ で文字列を測定するよりもはるかに高速であるため、これは確かに非常に高速に思えます。しかし、信頼性が最優先であり、AFAIK テキスト レンダリングでは通常カーニングが導入されるため、このようなことが行われるかどうかはわかりません。また、GDI+ からこの情報を取得するのがどれほど簡単か難しいかはわかりません。
また、ReactOS のスクリーンショットは、 Firefox が各文字のサイズと位置を計算すると信じさせたものでした。