« 斬新な関数 | メイン | multi-byte string »

2003年04月08日

GIFを解剖する

出社日。先週の続きで共有メモリ上のTTFデータを参照して描画する。苦節数日でなんとか成功。ポインタの引き回しには問題がなく、gd1.8.4での内部データのイニシャライズ漏れ(既存バグ?)が原因のひとつだった。 しかし、描画はできたが処理速度の大幅な向上には至らず。 根本問題は別にありそうだ。例によってプロファイラ(gprof)で調べたところ、フォントキャッシュのサーチや管理が処理の35%を占めていた。 同処理を軽く解析したが速度向上の糸口は本日分からず。 視点を変えて残りの65%の部分の高速化を検討した方がよいかもしれない。

 昨日着手したアニメーションGIFか否かの関数は概ねできあがったが、ドライバスクリプトを作っていざ実験してみると全て「アニメーションGIFではない」と返ってくる。デバッグモニタを入れて調べたところ、fread関数でバイナリデータを読むと文字列として扱われることが原因のようだ。 読みたい情報(databit)は8bitの構造体で実際には0xC4が入っているのだが、ゼロとなってしまう。参ったな。
PHPレベルでは無理なのだろうか。このデータが拾えないとGIFヘッダのデータサイズが分からず先へ進めないのだ。とほほ。

 その後トライ&エラーの結果、fseekの使い方を間違っていたことと、freadした結果にord関数をかませば行けることがわかった。ライブラリにSIしてリサイズ時の判断材料として使うよう改修した。 しかしこれも暫定対策で、縮小してもアニメーションを維持させたい。が、これはまさにunisys特許に抵触しそうだな。


にほんブログ村 旅行ブログ 旅行ガイド・プランへ

【他の年の本日の日誌】
2008:
ドイツ遠征2008〜(6)嵐とともに帰国 日本時間12:00頃起床。寝ている途中背中が痛くなる。朝食は選択の余地無し、みたい。適当にすます。 うだうだしているとまもなく着陸とのこと。春の嵐が来ているようで、ふらふら揺れながら15:15おっかなびっくり着陸。成田に帰ってきた。 セキュ...
2007:
犬山祭/ぷらっとこだまロザ 久々の18きっぷ移動の疲れか、早起きできずゆっくり起床。妻は先に犬山祭り再参戦。 昨夜の雨はあがり、いい天気だ。 11:00すぎチェックアウト。 11:24発の特急新鵜沼
2006:
新PCセッティング  昨夜の宴会疲れか、午後起床。昨日届いた新PCのセッティング。DIMENSION3100Cはファンが静かであった。最新機種と1GBメモリのおかげか、サクサク動く。19インチの液晶モニタは画面の広さはもとより、高さ調整、回転機能がついているの...
2005:
肩の荷を下ろす 出陣。別件で諸事情により2ヶ月間放置されていた不具合調査に専念。座標計算を修正。複数の処理方式を統一。高速化も図れた。 今週末は久々の土日休みになりそうだ。 ...
2004:
人身事故 出社日。 新方式の検討などを行う。 帰りに京浜東北線西日暮里で起きた人身事故の影響で山手線も抑止。14分ほど動かなかった。 余裕で乗れるはずだった京急に乗れなかった。 昨日手配依頼したレンタカーのYES回答がきた。2日間カーナビ、免責保...
2002:
微弱前進  ひきつづき今週も毎日出社日である。ただし10日と11日は修行のため休みことをご承諾いただいている。先週までにある程度のモノつくりはできており、あとはクライアントとのCD以降を残すのみである。今日は積み残しとなっていた難題のCGIをやっつけ...

投稿者 onsenfan [ ] : 2003年04月08日 00:00

この記事が役に立った/おもしろいと思ったら、ワンクリックで応援お願いします

コメント

コメントしてください




保存しますか?



ジオターゲティング
counter
3