問題タブ [pangocairo]

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

python - Windows での Python サブピクセル テキスト レンダリング

文字列内の文字が Windows で異なる色を持つ可能性があるサブピクセル テキスト レンダリングに Python を使用しようとしています。これまでにわかったこと:

  • PIL : PIL は、サブピクセルでレンダリングされたテキストを生成できません。fontmode = "0"とのfontmode = "1"設定を使用して、エイリアス化されたテキストをレンダリングすることしかできません。ImageFont.getsizeおよびImageFont.getoffset関数を使用して各文字の位置を決定し、各文字を個別に描画することにより、各文字が異なる色のテキストをレンダリングできます。
  • pywin32 winapi バインディング: GDI 機能を直接呼び出すことができます。これは、サブピクセル テキストをレンダリングするフォントを作成できることを意味します。たとえばfont_win32 = win32ui.CreateFont(font_desc)、font_desc にキーが含まれている場合: 'quality':win32con.CLEARTYPE_NATURAL_QUALITY. ただし、異なる色の文字を生成するには、アンダーハングとオーバーハングを除いた各文字のサイズを知る必要があります。これには winapiGetCharABCWidthsFloat関数が必要です。残念ながら、pywin32 には関数のバインドがありません。
  • pangocairoバインディング (pycairo または cairocffi): pangocairo について少し混乱しています。コードと Google 検索を読むと、以下を使用してサブピクセル レンダリングが可能であることが示唆されますfo = cairo.FontOptions(); fo.set_antialias(cairo.ANTIALIAS_SUBPIXEL)。ただし、これは効果がありません。

これらは、これまで成功せずに私が探求してきた 3 つの方向性です。上記の方法で何か不足していますか、それとも別の方向を探るべきですか。すべてを C で記述し、Python から C コードを呼び出すことができました。もしかして、これが先行きですか?この最後のオプションのパフォーマンスが少し心配です。

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

c - Lisp / Windows / Pango: 既存のタイプ 'PangoLayout' を登録できません

プラットフォーム: Windows 10 Pro 20H2 64 ビット / SBCL 2.2.0

ライブラリ: mingw64/mingw-w64-x86_64-pango 1.50.3-1

MSYS2 経由でインストール:pacman -S mingw-w64-x86_64-pango

再現するサンプルコード:

上記のコードは、最近の macOS および Linux では正常に実行されますが、Windows 10 では次の出力が生成されます。

生成された画像は次のとおりです(空白のようです):

空白の画像が生成されました

しかし、それまでの間、C の同等のコードは問題なく動作します。

したがって、Lisp と Pango C のインターフェイスの間に何か奇妙な点があるのではないかと思います。おそらく、GObject に関連しているのでしょう。

私は非常に長い間ここで立ち往生しています。ヒントや提案をいただければ幸いです。ありがとうございます〜