遅々として進まないMT4iv2.0の正式公開。「このままβ版で良いかなぁ」とか思い始めてるんですがダメですかそうですか。モタモタしているうちに、いくつか気になることが出てきて、その辺に手を加えたβ6を出さなきゃいけないかも。以下もその1つ。
僕は、この「t2o2」と「VNC.JP(移転しました→ばれにゅ☆どっとねっと)」という、2つのblogを運営している。で正月、双方に新年の挨拶のエントリを書いた。で、同じ画像を貼り付けた。ところが、「t2o2」のMT4iでは画像がきちんと縮小されて表示されるのに、「VNC.JP」のMT4iでは縮小されすぎて何の画像だかさっぱり分からない。この違いは何?
MT4iでは、画像に含まれる余計な情報(Profileとか、デジカメ画像には必ずと言って良いほど付いてくる)を削除する為、以下のような処理をかましている。
$image->Profile( name=>'*' ); $image->Comment('');
これを以下のように書き換えると、「VNC.JP」の方でも思い通りの結果が得られた。
$image->Strip();
んがしかし、これだと「t2o2」の方で画像が表示されなくなっちまうのである。
「t2o2」はロリポップで運用されている。「VNC.JP」はさくらインターネット。双方のPerlMagick(Image::Magick)のバージョンを比べてみると、以下の通り。
ロリポ:5.47 さくら:6.0.6
どうやら、ロリポの5.47では、Strip()に対応していないらしい。逆に6.0.6では、Profile()やComment()で余計な情報を上手く削除できないみたい。
思い付いたのは、PerlMagick(Image::Magick)のバージョンによって、処理を切り分ける方法。バージョン拾って、if文で分岐させてやりゃわけない。んが、問題なのはStrip()が使えるPerlMagickのバージョンはいくつからなのか、ってこと。6.0からなんでしょうか。わからん。
--
……とか書きつつ、調べてみたら以下のことが判明。ImageMagickのChangeLogより抜粋。
2003-05-12 ImageMagick 5.5.7 released.
↓
2003-06-06 Added -strip option to strip an image of all profiles and comments.
↓
2004-04-15 ImageMagick 6.0.0 released.
5.5.7から6.0.0の間に、リリースは無い。というわけで、6以上かどうかで処理を分けて良さそうだ。
コメント