ひとりごと

新しい記事:[808]  古い記事:[806] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2003/05/21 (水)

・ PHPイメージ関数の謎

先日PHPを4.3.1に更新して、GDも新しくなったので 24bit color の取扱いもできるようになりました(たぶん)。で、基本的にうちのページでは画像変換には netpbm を利用しているのですが、netpbmでは中間形式としてpnm(てゆーかppm)が使われています。それはそれでよいのですが、netpbmのpnmは RAWデータ(バイナリ)ではなくASCII文字のデータを出力しますので、データサイズが1.5倍ほどに大きくなりリソースが無駄なのがよろしくないのです。また、落書きこーなーではPNGをBMPに変換して出力していますが、GDのライブラリで PNG-BMP の変換ができるのであれば、そちらを利用した方が速いだろうと予想されます。

てことで、とても簡単なコードを書いての実験

これで動くはず・・・だったのですが、BMPだけが動きません。てゆーか、コマンドラインで走らせて中身を見ても、magic番号もおかしくてサイズも明らかに小さい意味なしデータしか出てこないんですねー(謎)。16色や2色に減色してもやっぱりダメですし・・・。いったい ImageWBMP() という関数はどういう場合に使うものなのだろう。

てなことを調べるのには普通の人はソースコードを読むのでしょうが、わたしは面倒くさがり屋さんなのと読んでもよくわからないので、そのままほったらかしにするのでした(汗)
そのうち動くようになるかもしれないし(^^;

と、思っていたのですが、GDのソースを見てみると、

WBMP: Wireless Bitmap Type 0: B/W, Uncompressed Bitmap
とか書いてあるんですねー。うにゃ? Wireless ですか・・・。わたしゃてっきり WBMP の W は Windows なのかと思っていました。てことで、関係なさそうですなー。
# とはいえ、出てきたデータはとても'B/W, Uncompressed Bitmap'には見えないのでやはり謎ですけど(笑)
[つっこみ]

新しい記事:[808]  古い記事:[806] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)