もう、すっかりごぶさたの、ゆぅです。

 

わけあって、フォントファイルの徹底解剖を始めました!

 

、、、徹底解剖っていうのは、ちょっと無理かもですが、

解析して、わかりやすくまとめられたらなーって思ってます。

 

あとで、ちゃんとまとめサイト的なのを作りたいですが、

ひとまず、ささっとメモ程度に書きますねー。

 

 

ってわけて、フォントファイルの基本。

 

仕様は、このへんのMSとAppleのサイトを見て調べてます。

https://developer.apple.com/fonts/TrueType-Reference-Manual/

https://docs.microsoft.com/en-us/typography/truetype/

 

 

まず、ヘッダが12Byte。

 

説明すると大変なので、ざっくり、

フォント種類(4Byte)、テーブル数(2Byte)、他(6Byte)

 

そのあと、テーブル数分だけ、テーブル定義が16Byteずつ。

テーブルというのは、フォントの命令単位。

 

テーブル定義の内容は、

テーブルタグ名(4Byte)、チェックサム(4Byte)、データオフセット(4Byte)、データ長(4Byte)

 

テーブルのデータ本体は、ファイル先頭を0として、データオフセット位置から

データ長の分だけになります。

 

チェックサムの計算は簡単にいうと、データ部分を4バイトずつ正整数として解釈して、

データ終わりまで、繰り上がり無視で足していった答えになります。


計算式とかは、データ定義の仕様に書いてます。

実際計算してみて、チェックサム値が計算して出せる確認もしてみました。

 

基本はこれだけです。

あとは、それぞれのテーブルタグ名ごとに、データを解釈していくわけです。

 

 

と、いったとこで、いまは、個別のテーブル解析を進めています。

 

 

いまのとこ、こんな感じです。

続きをお楽しみに!