• ベストアンサー

TrueTypeの文字の形を取得したい(C#)

C#(Visual Studio 2012)にてTrueType文字の外形を直線&3次ベジェで取得したいと考えています。 以前、VC++で同様のものを作りました。 そのときは、メモリDCに描画した後、デバイスコンテキストからGetPath()にて座標を取り出すことで 実現していました。 C#でも同様の方法でやれると思ったのですが、デバイスコンテキストにDrawTextで描画したものの、 そこから先がわかりません。 何か参考になるURLがございましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

質問文にて、求めておられるのがどのあたりであるのかがいまいちわかりませんが、 C#では通常、デバイスコンテキストがより抽象化されたような形の Graphicsクラスを利用して描画などを行ったりします。 後半で「C#でデバイスコンテキストにDrawText」とあるのは、 このGraphicsクラスの扱いを指していますでしょうか? それとも、ネイティブコードとのやりとりが必要で、 実際にデバイスコンテキストを扱う必要があるのでしょうか。 マネージドコード内だけで行うのであれば、 .NET Frameworkには GraphicsPath クラスという パスを扱うクラスが存在しますので、 こちらを利用すれば良いのではないかとおもわれます。 http://msdn.microsoft.com/ja-jp/library/ms142533%28v=vs.110%29.aspx ネイティブのデバイスコンテキストを扱い、 WindowsAPIのGetPath()などを利用する必要がどうしてもあるならば、 P/InvokeというネイティブのAPI呼び出しを行う機能を利用することもできます。 http://msdn.microsoft.com/ja-jp/library/aa288468%28v=vs.71%29.aspx

sekinegoo
質問者

お礼

ありがとうございました。 FormattedText()とText.BuildGeometry()で文字の外形をGeometryクラスとして取り出すことができました。

関連するQ&A