フォント TrueType 構造解析のソースを表示
新しいページはコチラ
移動:
案内
,
検索
[[フォント]]に戻る。 == 概要 == 仕様書はAppleのホームページに掲載されています。この記事で頑張って読みこみたいと思います。 [https://developer.apple.com/fonts/TrueType-Reference-Manual/ https://developer.apple.com/fonts/TrueType-Reference-Manual/] プログラムを使ってフォント構造をなんらかの方法で処理して理解を助けるようなものを作りたいと思います。できればPDFでグリフ番号も取得しつつ、フォントが埋め込めるくらいまではいきたい。 まずは、FreeTypeが動かせる環境を構築します。そうすると、カラー絵文字処理用のlibpngもいるんだそうな。ということはその圧縮メカニズムを司るzlibもいるんだって。というわけで [[FreeTypeをコンパイル]]にその道中どんなこと作業が必要なのかをまとめます。 [[FreeTypeを使う]]で基本的な操作から、ちょっとした使い方くらいをやってみます。 だいぶと逸れましたが、目的を達成しようと思うと、やっぱりFontファイルの構造を理解しないと駄目ですね。アップルのページを見ながら考えてみます。せっかくなので、C++でフォントのImpact.ttfのバイナリファイルを読み込んで、プログラムによって分解しながら解析してみようと思います。まずはヘッダー情報とテーブルの配置情報が上の方に詰まってるみたいなので、読み込んでみようと思います。理解した情報をテキストに吐き出すということをやってみます。途中、簡易freetypeみたいなことをして遊ぶことを目的にやっていけば、自分でフォントを描画するsvgファイルを作ってみたりできて楽しそう。サブセットを作るための礎を築くことが出来そうな気がしています。ちょっと時間かかりそうだな。もっと若い時に頑張ってみればよかったかも。 力技のプログラムで分解します。カッコいいクラスとかは作る気が無いです。よっぽど繰り返し同じようなプログラムを書いてるなこれって思ったら、なんかやるかもしれないですけど。例外処理とかやる気なし。エラーが出始めても見返せないくらいの奴にしてやりますよ。 === 構造 === ttfファイルの構造を以下に示します。 *ヘッダ部(ファイル先頭から12Byte固定 アドレス0x0000 0000 ~ 0x0000000b) <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: 50px;">バイト数</th> <th style="width: 100px;">型</th> <th style="width: 150px;">名前</th> <th>説明</th> </tr> <tr> <td>2</td> <td>unsigned int</td> <td>Major Version</td> <td>メジャーバージョン番号</td> </tr> <tr style=" background: #eeeeee;"> <td>2</td> <td>unsigned int</td> <td>Minor Version</td> <td>マイナーバージョン番号</td> </tr> </table> == '''関連記事''' == :[[フォント OpenType 構造解析]] : [[FreeTypeをコンパイル]] :[[FreeTypeを使う]] [[フォント]]に戻る。
フォント TrueType 構造解析
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ