macintoshのTTFとwindowsのTTFと、基本的にファイルフォーマットは同じなのになんでそのまま使えないのか?
について、ご説明いたします。
まずmacのファイルはwindowsやunixと違って、マックバイナリ、リソースフォーク、データフォーク、コメント(ここはほとんど使われないそうですが)という部分から構成されます。
(OS Xではunixと同じようになってるらしいです)

マックバイナリの部分にはwindowsでいうFAT(NTFSはよく知らないので....)エントリやi-nodeのディレクトリエントリに書かれているような情報、
ファイルの名前や更新日時などの情報に加えて、ウインドウ内でのファイルの位置情報なんかが書き込まれています。
意外にmacはいろんな文字が使える反面、長さは63文字までで意外と短いです。(63文字もあればふつうは十分ですが)
この中にあるファイルクリエータとファイルタイプという情報でファイルとアプリケーションの関連付けが行われます。
(とか書いていますがmacを使ったことはないのでぜんぜんわかってないです)
リソースフォークの部分には通常ファイルのアイコンとかが入っているそうです。
そして、データフォークの部分にwindowsやunixでいうファイルの部分が書き込まれています。
フォントのファイルもこれと同じ構造をしています。
ただ、フォントファイルはリソースフォークのみから構成され、データフォークはありません。(あるものもあるのかもしれませんが)
というわけで、アタマから128バイトのマックバイナリを削ぎ落としてリソースフォークだけをファイルに保存すれば良さそうなものですが、それだとダメです。
リソースフォークはさらに、リソースヘッダ、リソースデータ、リソースマップの3つで構成されて、
実際のTTFデータはこのリソースデータの部分に保存されています。
というわけでフォントデータを取り出すには、リソースヘッダからリソースデータのオフセットを得て、
リソースデータの先頭4バイトに書き込まれているリソースデータ長を読んで、その次からをファイルに保存すればOKです。
- リソースフォークの構造について
apple developer connectionというページの中の
Resource File Format に書いてあったのを見つけてこのページを書きました。
- TTFのフォーマットについて
ftp.microsoft.com
のどこかで掘り起こした
TTFドキュメント。
TTSPEC.ZIP
はフォーマットについてのかなり詳細なドキュメントになってます。(英語だけど)
(なかなか発掘不能なので、あんまりよくないけどコピーを置いておきます)
apple developer connectionの
Fonts
というところにもTTFリファレンスというのがありました。(中身はほとんど見てないです)
|
|