フォント TrueType 構造解析 新しいページはコチラ
提供: yonewiki
(→head) |
(→head) |
||
301行: | 301行: | ||
'''■テーブル部 (可変長)''' | '''■テーブル部 (可変長)''' | ||
==== head ==== | ==== head ==== | ||
− | headテーブルは固定長(0x36 Byte) | + | headテーブルは固定長(0x36 Byte)です。朱色のアンダーラインは、他のテーブルでも利用する値です。 |
<table style = "width: 100 ; text-align: left; border-collapse: collapse; border-spacing: 0; "> | <table style = "width: 100 ; text-align: left; border-collapse: collapse; border-spacing: 0; "> | ||
509行: | 509行: | ||
</table> | </table> | ||
+ | |||
+ | ==== maxp ==== | ||
+ | maxpテーブルは固定長(0x20 Byte)です。主にグリフ全体における各要素の最大値を示しています。メモリをどれくらい確保していればグリフが確実に読み込めるかといった目安にもなります。基本的には動的にメモリを確保すると思いますが、メモリ不足を事前に察知することができます。総グリフ数は他のテーブルでも利用します。 | ||
+ | |||
+ | <table style = "width: 100 ; text-align: left; border-collapse: collapse; border-spacing: 0; "> | ||
+ | <tr style = " background: #778ca3; border-right: solid 1px #778ca3; color: #ffffff; "> | ||
+ | <th style = "width: 200px; ">型</th> | ||
+ | <th style = "width: 200px; ">Name</th> | ||
+ | <th>Value</th> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>Fixed 16.16</td> | ||
+ | <td>Fixedversion</td> | ||
+ | <td>1.00=TrueTypeアウトラインフォント</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td><span style = "background:linear-gradient(transparent 75%, #ff9393 75%); font-weight:bold; ">numGlyphs</span></td> | ||
+ | <td>グリフ数</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxPoints</td> | ||
+ | <td>単一グリフの最大ポイント数</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxContours</td> | ||
+ | <td>単一グリフの最大輪郭(りんかく)数</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxCompositePoints</td> | ||
+ | <td>複合グリフの最大ポイント数 複合グリフに使う単一グリフのポイント数の足し算なので、どのグリフが複合で使われるかによって決まるため、上記項目の単一グリフの最大値とはあまり関連はないものです。</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxCompsiteContours</td> | ||
+ | <td>複合グリフの最大輪郭数。上記に同じく</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxZones</td> | ||
+ | <td>1 : Z0命令を使う。2 : Z0命令を使わない。</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxTwilightPoints</td> | ||
+ | <td>最大Z0命令使用数。</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxStorage</td> | ||
+ | <td>47</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxFunctionDefs</td> | ||
+ | <td>最大FDEF数</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxInstructionDefs</td> | ||
+ | <td>最大IDEF数</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxStackElements</td> | ||
+ | <td>最大スタック深さ</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxSizeOfInstructions</td> | ||
+ | <td>最大命令数</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxComponentElements</td> | ||
+ | <td>最大複合グリフ要素利用数</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>unsigned short</td> | ||
+ | <td>maxComponentDepth</td> | ||
+ | <td>最大複合グリフ再帰深度</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | |||
+ | 以下はIMPACT.ttfの例です | ||
+ | |||
+ | <table style = "width: 100 ; text-align: left; border-collapse: collapse; border-spacing: 0; "> | ||
+ | <tr style = " background: #778ca3; border-right: solid 1px #778ca3; color: #ffffff; "> | ||
+ | <th style = "width: 100px; ">Name</th> | ||
+ | <th>Value</th> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>Fixedversion</td> | ||
+ | <td>1.00</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>numGlyphs</td> | ||
+ | <td>1019</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxPoints</td> | ||
+ | <td>242</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxContours</td> | ||
+ | <td>60</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxCompositePoints</td> | ||
+ | <td>82</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxCompsiteContours</td> | ||
+ | <td>5</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxZones</td> | ||
+ | <td>2</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxTwilightPoints</td> | ||
+ | <td>16</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxStorage</td> | ||
+ | <td>47</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxFunctionDefs</td> | ||
+ | <td>86</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxInstructionDefs</td> | ||
+ | <td>0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxStackElements</td> | ||
+ | <td>913</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxSizeOfInstructions</td> | ||
+ | <td>408</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>maxComponentElements</td> | ||
+ | <td>3</td> | ||
+ | </tr> | ||
+ | <tr style = " background: #eeeeee;"> | ||
+ | <td>maxComponentDepth</td> | ||
+ | <td>1</td> | ||
+ | </tr> | ||
+ | </table> | ||