このSOの質問で説明されているものと似ていますが、JavaではなくPythonで、文字からベクトル形式(点と曲線)を取得する方法を探しています。誰かが方法を知っていますか?
2 に答える
アップデート
FreeType ライブラリのかなり完全な Python ラッパーを見つけました。
- ドキュメント: https://freetype-py.readthedocs.io/en/latest/
- リポジトリ: https://github.com/rougier/freetype-py/
これは ctypes ベースで、かなり低レベルですが、バンドルされている例は、線や円弧などで記述されたグリフ ジオメトリを取得する方法など、使用方法を明確に示しています。FreeType 自体は、必要なあらゆるフォント ファイル形式を処理できます。
元の答え
Java の質問をしている人々が実際に望んでいたものを手に入れたかどうかはわかりませんが、これは明らかに些細なことではありません。
Java では、フォント レンダリング エンジン自体が JVM 内の Java オブジェクトとして実行される可能性があります。それは Python の哲学ではありません。インタープリター VM 内の Python オブジェクトではなく、ネイティブ コードで実行される画面へのレンダリングなどの低レベルの処理です。
そのため、Java では文字の実際のレンダリングを実行してそれらからデータを抽出するクラスに接続できますが、Python では、これはコードのいくつかのレイヤーによって実際のコードから分離されます。
その違いが説明しました。あなたの質問には、有意義な答えを得るのに十分な情報がありません:どのようなフォントファイルですか?? 数十種類あります!:-)
この font-path 情報をどのような状況で使用しますか? つまり、グラフィックをレンダリングするためにどのライブラリを使用しますか? それとも、データを読み取り可能なファイルにダンプしているだけなのでしょうか? グラフィックスのレンダリングに使用するライブラリによっては、そのライブラリ エコシステム (Qt、Cairo、pango、Windows ネイティブ、pygame など) を使用して文字情報にアクセスする方法がある場合があるため、これは重要です。
とはいえ、必要な情報をかなり簡単に取得できるフォント ファイル形式が少なくとも 1 つあります。点と曲線が XML データとして表現されるSVG フォントです。
また、もう 1 つ注目すべき点は、fontforge プロジェクトです。これは複数の形式のフォントを処理でき、Python でスクリプト化できます。しかし、それは私が知っていることについてです。( http://fontforge.org )
この質問では、本質的に、グラフィカルなベクトルを表現する方法についてです。matplotlibとPyplotが表示されるようになります。