0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

イラレ合成フォントデータについて

Last updated at Posted at 2024-12-29

内部は4つのチャンクに分かれている。

  • CFNA
  • CID
  • RLBL
  • name

ヘッダー部分

  • シグネチャ: 4byte (typ1)

  • padding: 8byte

  • ヘッダーたち (16byte x4)

シグネチャは typ1、このファイルがイラレの合成フォントであることを表している。
次の8byteは分からないのでスキップ
そっからはデータを構成する4つのチャンク情報がそれぞれ16byteずつ

この中でデータの核となりそうなのは CIDRLBLかな
CFNAとnameはメタデータっぽいし、あまり考えなくていいかも。

また、少し注意が必要なのは、CFNAとCIDは順番が逆だということ。
ヘッダーではCFNA → CIDの順で書かれているが、実際にはCID → CFNAの順でチャンクが置かれている。

CIDチャンク

image 1.png

ヘッダー部分 (16byte)

  • tag: 4byte (CID )
  • skip: 4byte
  • offset: 4byte (0x4C)
  • length: 4byte (0x13F6)

ファイル先頭から後の分

この例の場合、ファイル先頭から76byte先の5110byte分がCIDチャンクとなる

image 2.png

こっから

image 3.png

ここまで

この中に、フォント名だったりスケールだったりが入るらしい

長い

CFNAチャンク

image 4.png

ヘッダー部分 (16byte)

  • tag: 4byte (CFNA)
  • skip: 4byte
  • offset: 4byte (0x1442)
  • length: 4byte (0xAA)

ファイル先頭から後の分

この例の場合、ファイル先頭から5186byte進めたあとの170byte分がCFNAチャンクとなる

image 5.png

ここはよくわからない

RLBLチャンク

image 6.png

ヘッダー部分 (16byte)

  • tag: 4byte (RLBL)
  • skip: 4byte
  • offset: 4byte (0x14EC)
  • length: 4byte (0x042B)

ファイル先頭から後の分

この例の場合、ファイル先頭から5356byte進めたあとの1067byte分がRLBLチャンクとなる

image 7.png

こっから

image 8.png

ここまで

居ますね、ヤツが

まずは、L 0 9 0からKanjiまでの部分

image 9.png

  • 目印: 8byte ( L 0 9 0)
  • 文字セットたち(個数分連なる)
    • skip: 16byte
    • offset: 2byte - Kanjiからのオフセット
    • char: 2byte x3 (Unicode)

L 0 9 0はよくわからないが、なんか不変なので目印に使えそう

char 2byteには、特例文字セットで設定した文字がUnicodeで3つずつ ← ? 並んでる

「あ」と「い」だったら、U+3042とU+3044なので、

304230423042304430443044
    ↓↓↓
0B0B0B0D0D0D

となる

んで、Kanjiから先の部分

image 10.png

ここに文字セットの名前が、特に区切り記号などなく、詰めて連ねてある

まずはおきまりのやつら

Kanji漢字KaneかなPunctuation全角約物Symbols全角記号Alphabetic半角欧文Numbers半角数字

これの尻尾に特例文字セットが連なる

Kanjiから分進めた先に名前がある

(そして1つ目の文字セットのoffsetは必ず0x54(84byte)になる)

例えば、1つ目の「特例1」であれば、オフセットが0x54で84byte

よって、Kanjiから84byte進めた先に名前が存在する

image 11.png

image 12.png

青い部分が文字セット名

そして2つ目の「特例2」であれば、オフセットが0x59で89byte
よって、Kanjiから89byte進めた先に名前がある

image 13.png

image 14.png

Shift-JIS表示できなくてゴメン;;

nameチャンク

image 15.png

ヘッダー部分

  • tag: 4byte (name)
  • skip: 4byte
  • offset: 4byte (0x1917)
  • length: 4byte (0x98)

ファイル先頭から後の分
この例の場合、ファイル先頭から6423byte進めたあとの152byte分がnameチャンクとなる

image 16.png

この部分

ATC-で始まる部分には、保存した合成フォントのプリセット名がUnicode表記とShift-JIS表記でそれぞれ書いてある。
また、それぞれのバイト数は、その直前に書いてある。

image.png

<Unicodeバイト数><Shift-JISバイト数>ATC-<Unicodeプリセット名><Shift-JISプリセット名>

のような型になっている。
また、その後ろにある部分については、ある時と無い時があるようだ。
(まだ判明していない)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?