もう、すっかりごぶさたの、ゆぅです。
わけあって、フォントファイルの徹底解剖を始めました!
、、、徹底解剖っていうのは、ちょっと無理かもですが、
解析して、わかりやすくまとめられたらなーって思ってます。
あとで、ちゃんとまとめサイト的なのを作りたいですが、
ひとまず、ささっとメモ程度に書きますねー。
ってわけて、フォントファイルの基本。
仕様は、このへんの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バイトずつ正整数として解釈して、
データ終わりまで、繰り上がり無視で足していった答えになります。
計算式とかは、データ定義の仕様に書いてます。
実際計算してみて、チェックサム値が計算して出せる確認もしてみました。
基本はこれだけです。
あとは、それぞれのテーブルタグ名ごとに、データを解釈していくわけです。
と、いったとこで、いまは、個別のテーブル解析を進めています。
いまのとこ、こんな感じです。
続きをお楽しみに!