問題タブ [directwrite]

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 に答える
314 参照

locale - Windows 7 での IDWriteFont::GetInformationalStrings(...) の問題 (日本語システム ロケール)

IDWriteFont::GetInformationalStrings(...) を使用して、Windows 7 (日本語ロケール ja-JP) でフォントの完全な名前を取得していますが、問題は次のとおりです。

DWRITE_INFORMATIONAL_STRING_FULL_NAME または DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME を DWRITE_INFORMATIONAL_STRING_ID として渡すと、exists=false が返され、IDWriteLocalizedStrings が返されません (システム上のすべてのフォントに対して)。

ただし、対応するエントリはフォントの名前テーブルに存在し、IDWriteFont::GetInformationalStrings(...) 呼び出しは Win 7 (en-us ロケール) の同じフォントに対して正常に機能します。

これが DirectWrite の問題かどうか教えてください。

ありがとう。

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

c++ - DirectWrite テキストの中央揃え

描画する必要があるテキストを中央に揃えようとしています。ID2D1RenderTarget::DrawTextLayout メソッドを使用します。問題は、テキストの水平方向の配置をDWRITE_TEXT_ALIGNMENT_LEADING(デフォルト値) に設定するとテキストが不自然に描画されることですが、この値を変更するDWRITE_TEXT_ALIGNMENT_CENTERとテキストが右にシフトします。

例の文字列は

結果は次のとおりです(最初は調整の主導です):

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

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

delphi - DrawTextLayout の DWriteMeasuringMode の変更

現在、DrawText を使用して DirectWrite でテキストを描画しています。

DrawTextLayout に切り替えたときに、エイリアス文字のレンダリングがうまく行われていないことに気付きました。

DrawText でできるように測定モードを変更する方法はありますかDWRITE_MEASURING_MODE_GDI_CLASSIC

上のテキストは DrawText (およびDWRITE_MEASURING_MODE_GDI_CLASSIC) で描画され、下のテキストは DrawTextLayout で描画されます。

http://img5.fotos-hochladen.net/uploads/wwwwwwwww3b9zou6icp.jpg

http://img5.fotos-hochladen.net/uploads/xxxxxxxag8pdm5h2e.jpg

ご覧のとおり、下部のテキストでは文字間隔が適切ではありません。

DrawText の測定モードをに設定するDWRITE_MEASURING_MODE_NATURALと、TextLayout での描画とまったく同じ結果が得られます。問題は、変更方法がわからない測定モードです。

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

direct2d - IDWriteTextLayout は日本語の単語をトリミングしませんか?

ここの例に従って、省略記号を使用してテキストをトリミングしました: http://cx5software.sakura.ne.jp/blog/2011/01/18/directwrite-ellipsis-trimming-sign/

英語のテキストには問題なく機能しますが、日本語のテキストには機能しません。誰も理由を知っていますか?

テキストを書き込もうとする私のコードのスニペットは次のとおりです。

そして、これが結果のテキストです。省略記号は英語の文字に追加されますが、日本語のテキストには追加されないことに注意してください。

ここに画像の説明を入力

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

fonts - IDWriteTextLayout で使用される既定のタイポグラフィ設定は何ですか?

少なくとも私が使用しているフォント (つまり、Calibri) では、デフォルトで有効になっているように見える合字を無効にしたいと考えています。これを行う方法は、 を使用して、さまざまな合字関連のフォント機能を含むレイアウトにオブジェクトをIDWriteTextLayout::SetTypography設定し、値をゼロにしてそれらを無効にすることです。IDWriteTypographyこれは合字を無効にするために機能しますが、カーニングなど、私が台無しにしたくない他のタイポグラフィ設定にも影響します (無効にします)。

いくつかの実験の後、空のIDWriteTypographyオブジェクトを設定するだけで合字を無効にできることがわかりました (単に によって作成され、IDWriteFactory変更せずにレイアウトに適用されたもの)。空のタイポグラフィは、可能なすべてのフォント機能をゼロ/無効に設定する効果があるようです。したがって、実際にやりたいことは、デフォルトのタイポグラフィ設定を取得し、合字に関連するものをオーバーライドしてから、それをレイアウトに設定することです。

残念ながら、デフォルト設定を取得する場所が見つかりません。何も設定されていない場合はnullをIDWriteTextLayout::GetTypography返すだけですが、その場合は合字などのさまざまなタイポグラフィ設定が明らかに有効になっています。また、インスタンスIDWriteFactoryを作成するための他の方法 (またはその新しいバージョンのいずれか) またはフォント関連のインターフェイスも見つかりません。no が設定されている場合、どのタイポグラフィ設定を使用するかをIDWriteTypographyどのように決定しますか? デフォルト設定はフォント固有ですか? これらの設定を何らかの方法で取得して、いくつかを微調整し、残りのデフォルト値を継承することはできますか?IDWriteTextLayoutIDWriteTypography

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

c++ - 編集ボックスでテキストをスクロールするには?

直接 2D と直接書き込みを使用してカスタム編集ボックスを作成しています。塗装物(箱)はダイレクト2Dで行います。WM_CHAR メッセージから入力を取得し、文字列に追加します。この文字列はボックスに書き込まれます。問題は、テキスト入力がテキスト ボックスの長さを超えると、自動的に下にスクロールし、入力中のテキストがテキスト ボックスに表示されなくなることです。テキストをスクロールして、常にテキストボックスに表示されるようにする方法。

これは編集ボックスを示す画像です

ここに問題を示す画像があります

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

c# - winrt でのフォント ファイルの内容の読み取り

WinRT プラットフォームからフォント ファイル ストリームを読み取るには? C# UWP からフォント ファイルのコンテンツを取得する必要があります。ご存じのとおり、Fonts フォルダーからファイルを直接読み取る方法はありません。このフォルダーを選択するのはユーザーの責任ではないため、FilePicker も私にはオプションではありません。DirectWrite (C++) を使用してフォント名を列挙し、C# で利用できる COM コンポーネントでラップする方法を見つけました ( https://code.msdn.microsoft.com/FontExplorer-lets-you-f01d415e#content )、フォントファイルの内容をバイト[]またはストリームとして読み取るために、同様のことができるのでしょうか?