2011年4月22日

PHP で BMP ファイルを読む

PHP には GD という画像を扱うためのエクステンションがあり、使用可能なサーバも少なくない。
サポート形式も JPEG / GIF / PNG など Web 上でメジャーな画像形式には一通り対応しているので困ることはないのだが、案外 BMP ファイルが読めなかったりする。
パソコンに詳しくない人が使うサービスなんかだと BMP ファイルが使えると嬉しいことも多いだろう。

ググッても案外思ったほどちゃんと対応しているコードは多くないようで、RLE圧縮非対応だったり、16bitカラー非対応だったり、特殊なビットフィールドに対応できていなかったりなどなど。
(試してないけど)真面目に対応したいんだったら ImageMagick などを使えばいいという話もあるので PHP で書かなければいけない理由はそんなにないものの、GD だけで手軽に済ませたいこともしばしばあるので真面目に書いてみた。

https://bitbucket.org/oov/php-bmp/src
  • 1bit / 4bit / 8bit / 16bit / 24bit / 32bit
  • RLE圧縮
  • ビットフィールドフリー
  • BI_JPEG / BI_PNG も読める
  • 透過情報も上手く読み込める
  • 恐らく PHP 5.1.0 以降で動くんじゃなかろうか
テスト用画像としては自分で作ったデータの他、こちらで配布されているデータも利用した。

追記: よく見たらbmp対応コードが既にあるっぽいので将来的にはどこのサーバでも bmp が読めるようになりそう。と、思ったら PHP の GD エクステンションのヘッダみると、webp はサポートしようとしてるけど bmp の気配はない……ぐぬぬ。
Clip to Evernote

2011年4月5日

SENNHEISER 92595 を買った

サウンドハウスSENNHEISER 92595 を買った。

標準プラグをミニプラグに変換するためのパーツで、似たような商品はたくさんあるのだがこのタイプの形状が多く、意外とこの商品のように途中にケーブルを経由して変換するものは少ない。
ケーブルを途中に挟むことによって接続部分が重さによって無理に引っ張られることがないので恐らく接続先に与えるダメージが少なくて済むのではないかと思い購入。

最近変換コネクタの接触が悪くてヘッドホンからなる音の左右のバランスがおかしかったのだが、これで安心して MDR-CD900ST を使えるようになった。
Clip to Evernote

2011年4月1日

僕と一緒に始めよう!初心者と始めるPHP入門[謎解き編]

エイプリルフールも過ぎたので青字で少し追記しました。

PHPは掲示板とかカウンタとか作れる凄いやつです。早速書いてみましょう!
Clip to Evernote