« T2FAnalyzer1.4.0リリース | トップページ | Win32デバッグ(13)・・・最終章 »

2011年2月20日 (日)

もう1度だけT2FAnalyzer

T2FAnalyzerの最新版V1.4.1をリリースしました。

埋め込みビットマップの表示に対応しました。こんな感じです。

T2f141_0


埋め込みビットマップは実際はEBDTテーブルに格納されているのですが、EBLCテーブルのタブの内部に表示されます。

GPOSテーブルのルックアップタイプ8のChaining Contexual Positioningのフォーマット3の表示にも対応しました。

後は主にバグフィックスです。

« T2FAnalyzer1.4.0リリース | トップページ | Win32デバッグ(13)・・・最終章 »

フォント」カテゴリの記事

コメント

初めまして。☆と申します。

この度は、
Windows Meで使用しているあるフォントの情報を確認しようと使用させて頂いたところ、
「ストリームからの読み込みエラー」が表示される現象を確認しました。

環境 : Windows XP

問題のフォント形式はTTCなので、
MicrosoftのTrueType SDKのBREAKTTCでTTF化したものも読み込んでみたのですが、
同様でした。

どうしたらよいものでしょうか。

こんにちは。
T2FAnalyzerのエラー表示はしっかりしてないんですね。すみません。

解析中の時に、画面の下のステータスバーに解析中のTTFのテーブル名
が表示されると思いますが、
エラーのダイアログが出た時に、何て表示されているでしょうか?
また、
TrueType SDKをお使いならttfdump.exeでそのフォントに含まれるテーブル名の
一覧を教えて下さるとどのテーブルの解析でコケてるかあたりが付けられるので
助かります。

というより、もし、フォントが無料フォントならその名前を教えて下さるとこちらで
確認できますので助かります。

お世話になっております。☆です。

実は、ツールと一緒にパッケージ販売されておりましたフォントですので、
今、無料で頒布されているのかわかりません。

ただ、TTC/TTFであるのにソフト側で読み込めないのは、
気になった点でもありましたので、ご報告させて頂いた次第です。

>エラーのダイアログが出た時
Analyzing the 'loca' table...
で、
ストリームエラーが出る様です。

>テーブル名の一覧
'EBDT' 'EBLC' 'OS/2' 'cmap' 'fpgm' 'gasp' 'glyf' 'head' 'hhea' 'hmtx' 'loca' 'maxp' 'mort' 'name' 'post' 'prep' 'vhea' 'vmtx'
の順に表示されました。

また、Microsoft Font Validatorでレポート出力できましたので、
宜しければHotmail宛に送信させて頂くことも可能でございます。

こんにちは。

locaテーブルですか。構造が単純なテーブルでエラーがでるとは思ってもみませんでした。

>また、Microsoft Font Validatorでレポート出力できましたので、
>宜しければHotmail宛に送信させて頂くことも可能でございます。

お手数をかけますがレポート出力の方を送っていただくとありがたいです。
vanillaskyz610@hotmail.co.jp
半角英数字でお願いします。

vanilla様 お世話になっております。

先程、メールさせて頂きましたので、
ご査収頂ければと思います。

失礼いたします。

ありがとうございます。レポート出力拝見しました。
やはり、locaテーブルに問題がありますね。頂いたxmlのレポート出力を「loca」で検索すると、その近くに例えば

Report ErrorType="E" ErrorCode="E1701" Message="The number of entries is not equal (maxp.numGlyphs + 1)" Details="number of entries=9290 number of glyphs=9290"

が見つかると思います。

locaテーブルには各グリフのデータへのオフセットが格納されているのですが、
そのエントリの数がグリフ数+1個なければ仕様的に?ならないのですが、グリフ数個しかなくエラーが出てると思います。

http://www.microsoft.com/typography/otspec/loca.htm
http://developer.apple.com/fonts/TTRefMan/RM06/Chap6loca.html

T2FAnalzyerは、フォントが仕様にのっとっているかチェックするFont Validatorと違い中身を確認するのが本来の目的であるので、ある程度仕様にのっとってないと、そこでエラーが出て解析が止まってしまうので、中身を確認できなくなります。

なるほど・・。
Windows Meではその仕様をある程度無視していたから、
表示できていたのですね。
これは、フォント表示側・制作側の問題と捕らえるべき問題とも言えますね。。

元々、XPで表示しようとすると、
「有効なフォントファイルではありません」というエラーから疑問を持ち始め、
http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/64b92c66-5d26-438f-87c3-faf9d8cd3477/
http://121ware.com/download/pc/module/stupgd/w2000/ap/FA7890F2/FA7890.HTM
http://www.nec.co.jp/soft/font/jis7890/env.html
のようなケースから、
環境を左右させるVC++のWINVERマクロのようなものが邪魔しているのかと想像したりしてました。

T2FAnalzyerを必要としたのはそういった経緯からでしたが、
私自身の知識不足で解説して頂き、
利用するという本題には実現には至りませんでしたが、
解決の糸口は見えたような気がいたしました。

お時間を割いて頂き、ありがとうございました。

ところで、1つ提案事ですが、
T2FAnalzyerの初期起動ウィンドウでは、
ステータスバーがタスクバーによって隠れて存在が分からなかったのですが、
ステータスバーを表示させるためにウィンドウ・サイズを小さく変更すると、
例えば、cmap TableのSegment mapping to delta valuesタブのSegments値とGlyphIDs値を表示するテーブルが切れてしまい、
縦スクロールバーを最後のIndex値まで持って行けず表示できない問題が生じるので、
Segment mapping to delta valuesタブにスクロールバーを設置するというのは無理でしょうか。
同様なケースは、Other TablesのDSIG TableのSignatureBlock等でも生じるようです。
因みに、私の環境は1360*768pxのモニター解像度で使用しております。

お返事遅れました。

>Windows Meではその仕様をある程度無視していたから、
表示できていたのですね。
これは、フォント表示側・制作側の問題と捕らえるべき問題とも言えますね。。

そうですね。フォントをレンダリングするときは、そのような仕様を無視しても、とりあえず、グリフの先頭データへのオフセットが分かれば、レンダリング可能ですので。

>Segment mapping to delta valuesタブにスクロールバーを設置するというのは無理でしょうか。

T2FAnalyzer開発当初の頃に、全く使用者のモニター解像度を考慮してなく報告が上がったので、とりあえず、1024*768の環境で見れるように、デザインする時に、考えてはいるんですが、調整甘かったっぽいですね。

最初はなるべくウィンドウのサイズに合わせて中身のサイズも変わるように試みたのですが、色々プログラミング上、悩ましい事(開発環境のバグや自分のスキルなど)がありまして、大多数を固定サイズにしました。そのため、逆に、もっと高解像度な環境を使ってる人には、余白だらけになりまして・・

と、もしやるならそこらへんももう1度考えなしてからやりたいなと。

T2FAnalzyer 1.4.2を利用させて頂いております。
1つだけバグを見つけましたので、ご報告させて頂きます。
glyfのInstructionsの表示で、PUSHB[abc]のArgumentsが1つ不足しています。
000なら1つ、001なら2つ、...です。
なお、PUSHWは問題ありません。

バグ報告は取り消します。
Arguments列を伸ばしたら表示されました。
ご迷惑おかけしました。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/39651656

この記事へのトラックバック一覧です: もう1度だけT2FAnalyzer:

« T2FAnalyzer1.4.0リリース | トップページ | Win32デバッグ(13)・・・最終章 »

自作ソフトウェア

無料ブログはココログ

メモ