PHPのGDライブラリ・バインディングでは、BMPフォーマット(正式にはMicrosoft Windows Bitmap Image)を扱うことが出来ません。

BMPフォーマットは、現在はMicrosoft社が仕様を公開しています。元々はIBM社と共同で策定したフォーマットでしたが、OS/2とWindowsの2つのオペレーティングシステムで異なるフォーマットが使われだし、OS/2が下火になった今、Microsoft社のフォーマットが主流になっているといった感じです。

Bitmaps (Windows) @ msdn.microsoft.com



GDライブラリで画像を扱う場合、一度、画像ファイルからGDフォーマットのデータを作ります(デコード)。そのデータに対して処理をした後、GDフォーマットから画像データに変換します(エンコード)。PNGやJPEG、GIFなどはこのデコード/エンコードのどちらも可能なのですが(gd_info関数でチェック可能)、BMPフォーマットの処理系は実装されていません。

まぁWWW上でBMPフォーマットの画像を使う機会はあまり、というかほとんどないんですが、私が関係しているプロジェクト「
Jeans CMS」でPHPのBMPフォーマット画像処理系を書いたので、GPLライセンスのもと、NP_MediaUtilsのバージョン1.0.0にBMP画像処理系を含めようかなと考えています。

ただし今のところ、色深度が24ビットまでの非圧縮なものしか処理できず、また、デコードする処理系しか書いていないという体たらく。しかも8ビットと16ビットはバグが報告されてます。まぁ、せっかく書いたので、デバッグとメンテナンスがてら同梱してしまいたいなぁ、と。。。