Hatena::ブログ(Diary)

satosystemsの日記 このページをアンテナに追加 RSSフィード

2014-02-10

[] 各プラットフォームのフォントの高さについて

フォントの高さ、というのがプラットフォーム毎に少しずつ違うようなので、簡単にまとめてみた。

ここで言う「高さ」とは、一行表示する際に必要になる高さのこと。つまり、次の行との余白は含まない。


Microsoft (Win32 API) の場合

f:id:satosystems:20140210163627p:image

  • Height = Ascent + Descent + InternalLeading

Win32 API は ExternalLeading というのが特徴的。要するに、上余白と下余白で、そこを API で細かく操作できるのは優位性がある。

Oracle (Java) の場合

f:id:satosystems:20140210163715g:image

  • Height = Ascent + Descent + Leading

Leading は図にはないが、Win32 API の InternalLeading と同じ位置にある。また、図では Ascent がアルファベットの頂点にあるように書かれているが、実際にはもっと高い位置にあり、情報として使えない。

f:id:satosystems:20140210170116p:image

青が Ascent、紫が Leading、緑が Descent で、なんかスカスカすぎてこれでは高度なテキスト描画はできない。

Adobe (Flush) の場合

f:id:satosystems:20140210163736j:image

  • Height = Ascent + Descent

情報が非常に細かい。ここまでの情報が取得できるのであれば、Flash 上に独自コンポーネントを構築することも難しくはないだろう。

Apple (Cocoa) の場合


f:id:satosystems:20140210163757p:image:w480

  • Height = Ascent + Descent

Win32 API と異なり、余白が下にある。続く行がないのに下に余白があるのはどうなんだろうか。X-height や Cap height という情報は使い勝手が良さそう。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/satosystems/20140210/1392019342
リンク元