問題タブ [uniscribe]

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 投票する
3 に答える
1061 参照

text - カーニングをユニスクライブ

職場では、テキスト文字のカーニングをより適切にサポートするために、アプリケーションのテキスト レンダリングを改善するという任務を負っています。私たちのアプリケーションは、テレビに表示される画像を生成するため、画質が最も重要です。したがって、生成する出力の外観を少し改善するだけでも非常に役立ちます。

現在のテキスト エンジンは、理想的なソリューションと思われる Uniscribe を使用して実装されています。hereで述べたように、複雑なスクリプトを使用して、コンテキストを意識した方法で合字の置換をサポートしています。また、右から左へ記述する言語と BiDi も処理します。アラビア語/筆記体言語を完全にレンダリングできるようにする必要があるため、これはすべて重要です。

したがって、Uniscribe がグリフ カーニング情報を出力していないように見えるのはかなり奇妙に思えます。問題を示すスクリーンショットを添付しました。

代替テキスト http://www.aliparr.net/kerning.jpg

私のアプリは、すべてのグリフが「モノスペース」で表示されるという点で、メモ帳と同じように機能します。Photoshop CS2 では、「T」の上部にあるブリッジが「e」の上にうまく張り出していることに注目してください。これを再現したい。

私は Pango/Freetype などの他の API を認識していますが、Uniscribe が他のすべてに優れている場合、このタスクの最後の 1% を実行するためだけにそれらすべてを含めるのは、かなり重量級のソリューションのようです。

Uniscribe を使用する手順がありませんか? これに対する最善の解決策は何ですか?Freetype は、既存の Uniscribe ソリューションと統合できるように、軽量な方法でカーニング情報をエクスポートできますか?

注意: Windows で実行する必要があるだけです。プラットフォームの移植性は、ありがたいことに、今心配する必要がある問題ではありません。

事前に乾杯!

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

unicode - 複雑なスクリプトのサポートを有効にすると、具体的にどうなりますか?

地域と言語の設定で [複雑なスクリプトと右から左への言語 (タイ語を含む) のファイルをインストールする] チェックボックスをクリックすると、正確には何が起こりますか?

  1. レジストリ キーを変更しますか?
  2. いくつかの .fon ファイルとキーボード dll がインストールされることに気付きました。

Windows XP で複雑なスクリプトを読みたいだけの場合、これは完全に必要ですか? ホストOSとしてのWindows 7としてのVirtualBox内での私のテストは、複雑なスクリプトを読み取るために有効にする必要がないことを示しているようです。しかし、このテーマに関するすべての文献がそう言っているわけではありません。どうしたの?

アップデート:

コンプレックス スクリプトが有効になっていない場合、 http://hi.wikipedia.orgは読み取れないはずです。

http://hi.wikipedia.org/wiki/विकिपीडिया:Devanagari_Help

問題はそれが読めることです。

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

delphi - DelphiでのScriptGetPropertiesの使用

DelphiでUniscribeDll(usp10.dll)のScriptGetPropertiesAPIを使用するにはどうすればよいですか。

C ++で例を見つけましたが、Cが苦手なので、翻訳方法がわかりません。

Delphiコードは、TurboDelphi2006以降に準拠している必要があります。

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

windows - FONTSIGNATUREがlfCharSetを反映しないのはなぜですか?

私は次のようなWindowsフォントを列挙しています:

私のコールバック関数には次のシグネチャがあります。

TrueTypeフォントの場合、私は通常、各顔の名前を複数回取得します。たとえば、複数の呼び出しの場合、を取得pelf->elfFullNameしてpelf->elfLogFont.lfFaceName設定し"Arial"ます。他のフィールドを詳しく見ると、各呼び出しが異なるスクリプトに対するものであることがわかります。たとえば、最初の呼び出しでpelf->elfScript"Western"、とは。pelf->elfLogFont.lfCharSetと同等の数値になりますANSI_CHARSET。2回目の呼び出しで、とを取得"Hebrew"HEBREW_CHARSETます。3回目の呼び出し"Arabic"ARABIC_CHARSET。等々。ここまでは順調ですね。

ただし、Arialのすべてのバージョンのフォント署名( )フィールドは同じです。pMetrics->ntmFontSig実際、フォント署名は、ArialのこれらのバージョンすべてがLatin-1、ヘブライ語、アラビア語などをサポートしていると主張しています。

描画しようとしている文字列の文字セットを知っているので、フォントの署名に基づいて適切なフォントをインスタンス化しようとしています。フォントの署名は常に一致するため、ヘブライ語やアラビア語のテキストを表示する場合でも、常に「西洋」フォントを選択することになります。低レベルのUniscribeAPIを使用しているため、Windowsフォントリンクのメリットは得られませんが、コードは機能しているようです。

lfCharSet実際に何か意味がありますか、それともレガシーアーティファクトですか?それぞれの顔のすべてのスクリプトのバリエーションについて心配するのをやめるlfCharSetべきですか?DEFAULT_CHARSET

私の目的では、TrueTypeフォントとOpenTypeフォントのみを気にします。

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

java - インド語スクリプトの複雑なテキスト レイアウト

テルグ語に Unicode TrueType フォントを使用しています。テルグ語に指定された範囲で一連の Unicode 文字を入力し、Java 関数を使用して対応する文字を表示したいと考えています。Java のどの部分がシーケンスをクラスタに分割して処理しますか? WindowsではUNISCRIBEがそれを行うと信じています。Javaにsivachanderに似たものがあるかどうか知りたい
です

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

font-size - Uniscribe API を使用してフォントの幅を調整する方法

ご容赦ください。私は Uniscribe を初めて使用するので、これがばかげた質問ではないことを願っていますが、他のどこにも解決策を見つけることができませんでした。それで、ここに行きます...

Uniscribe API を使用してフォントの幅を縮小しようとしています。つまり、特定の高さの特定のフォントが与えられた場合、各文字の幅 (および関連するすべてのスペース) をユーザー定義のパーセンテージで縮小できるようにしたいと考えています。

LOGFONT現在のフォントの構造を取得し、lfWidthフィールドを元の値のパーセンテージに調整することで、Uniscribe 関数を呼び出さずにこれを成功裏に達成しました。これは単なる平均的な文字幅ですが、望ましい結果が得られたようです。

ただし、Uniscribe を使用して同じことを実行しようとすると、 のlfWidth呼び出しに続いてフィールドが 0 にリセットされることに気付きましたScriptShape()。その結果、すべてのレンダリングされたテキストは元の幅を使用して出力されます。これがなぜなのか、またはそれを回避するために何をすべきかを説明するのに途方に暮れています。

私がやろうとしていることをすることが可能であるかどうか、誰にも分かりませんか?

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

windows - Unicode文字のグリフユニコード表現を取得する方法

Windowsは、uniscribeライブラリを使用して、場所に基づいてアラビア語とインディタイプの文字を置き換えます。新しいグリフには、入力された文字の元のユニコードが残っていますが、Unicodeで専用の表現があります。入力されたものではなく、実際に表示されたもののUnicodeを取得する方法。

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

c++ - LTRをRTLに変換しますか?

多くのUIコンポーネントと開発ツールがrtlをサポートしていないことをご存知のように、テキストを反転させると呼ぶことができます。結果は同じ例です。

LTR

RTL

とにかくこのLTRをRTLに変換する方法はありますか、私には何の考えもありませんし、言語は関係ありません

実際、私はRAD Studio Firemonkeyアプリケーションでこれを実行するためのソリューションを探しています。Firemonkeyアプリはrtlをサポートしていないため、rad studioのロードマップにはありますが、まだ実装されていません。

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

c++ - WindowsAPIは太字フォントを選択します

太字のフォントを選択するためのコードを記述しようとしています(実際には、クロスプラットフォームのフォントレンダラーに送信するフォントファイル名を取得したいのですが、あまり関係ありません)。CreateFont()を使用して、cWeightをFW_BOLDに設定し、pszFaceNameを「Arial」に設定します。このフォントをDCに選択し、GetTextFace()を使用して、実際に選択されたフォントを確認します。結果はArialです。フォントがArialBoldではなく、別のフォントファイルを持つ別の面であることに驚きました。Arial Boldフォントを指定する唯一の方法は、pszFaceNameを「ArialBold」に設定することでした。残念ながら、フォント名の末尾に太字を追加するだけでは、一部のフォントでのみ機能します。これは、一部のフォントには個別の太字フォントがないためです。

フォントの実際の太字バージョンが確実に返されるように太字を指定する一般的な方法はありますか?

ありがとう

フィル

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

truetype - Uniscribe とテキスト アウトライン

Uniscribe で ScriptShape/ScriptItemize からの出力を使用して文字コードを取得し、その文字コードを GetGlyphOutline に渡してベジエを取得できますか?

Uniscribe はアウトラインを直接取得するための呼び出しを持っていますか?