PHPでのGDとImageMagick
f0158244_10325316.jpg 自分のパソコン処理の記録。

 画像閲覧用にレンタルサーバーを借りているのですが,この度,サーバーの構成が新しくなりました。
 システム上の新サービスやディスク容量のアップなどがあったのですが,当方にとっては,別段,嬉しいこともなく,面倒なことばかり(苦笑



 事前にわかっていたことは,PHPのバージョンが4→5に上がること。
 借りているサーバーは,画像閲覧に使っており,PHP4を使っております。2,3年前から「PHP5にしたので移行作業をしてくれ」の旨の連絡を貰っていましたが,会社の業務ならともかく,自分の趣味のシステムですから放置しておりました。
 けど,今回のサーバー移行を機にPHP4はなくなって,PHP5だけになる,とのこと。(従来は,PHP4とPHP5併用)
 そういうのは,話としてはわかりますので,今回は仕方ないかなぁ。簡単なシステムですから,手直しがあるとは限りません。まぁ,やってみて,うまくいかなければ,その時に,直す・あきらめるを決めればという按配でした。

 新サーバーの移行処理は6/14にありました。
 作業終了のメールを貰ったので,さっそく検証。
 一発目は,案の定,まったく作動せず(笑
 PHPの定義などを見直して,そこそこ動くようになったのですが,画像閲覧本体で使っているサムネイル表示が作動せず。最初,ちょっとだけ表示されましたが,テストを繰り返しているうちに,まったくダメに。

 そしたらサーバー業者からこんなメール↓が飛んできました。
> 本日、お客様ご利用のCGIが原因でサーバーに負荷がかかっておりました。
 だってさ。
 アタシって,迷惑な客?(苦笑
 ええ,まぁ,サムネイルの画像縮小で,Perl CGIを使ってますよ。
 けどさー,旧サーバーでは,こんな御指摘は一度も頂戴しておりませぬ。

 数日後,うちに保管してあったバックアップをサーバに戻して,利用者が少ないと思われる早朝に試してみました。
 たしかに,高負荷っぽい挙動。
 サムネイル生成なので,1ページの処理でも,何枚分も連続してPerl CGIを起動するので,あまり褒められた手法じゃないのは承知していますけどね。でもさー,サムネイルなんて,こんなもんじゃん。
 新サーバーに移行して,処理能力が落ちた?負荷判定のしきい値の見直しがあった?
 そういうのを追求しても仕方ないので,Perl CGIは断念して見直すことに。

 ちょこっと調べて,Perl CGIのインターフェースと共用出来るように,PHPのGDライブラリでサムネイル生成のプログラムを作成してみました。
 旧サーバーの最初から,PHP版にしていれば,良かったのでしょうけど,このシステムは,今のレンタルサーバー業者を使い始める前の業者の時に作ったもの。2003年頃じゃないでしょうか?
 今の業者へ乗り換えた時は,わずかな手直しで移行できたので,そのまま使っていた次第。

 ところが,GDライブラリが生成する画がイマイチ。以前のPerl CGIの画より悪いです。
 Perl CGIは,ImageMagickを使っていたのですが,今回,調べてみるとPHPからもImageMagickでの処理が出来ることが判明。
 さっそく,PHPでImageMagickを使った処理も書いてみました。
 ImageMagickの方は,アンシャープマスクやコントラスト強調も出来るので,画としては全然良くなりました。
 画像処理関連の機能は,ImageMagickの方がたくさんあります。対するGDは描画関係だけ,という感触。GDにもアンチエイリアスの機能があって,試みましたが,明確な効果は感じられませんでした。

 そういうわけで,ImageMagickで行こうと何箇所かでテストしていると,3枚目まではOKだが,4枚目が加わると,一部画像生成がされなくなることが判明。
 ダメになるところはランダム。1枚目がNGで,2枚目~4枚目はOKということも。
 これじゃ,10枚や20枚の処理をさせるのは不可能。
 どうやら,新サーバーでは,ImageMagickがネックなっていると受け止めた方がよさそうです。

 ImageMagickによるトライアル↓
f0158244_10311842.jpg
 GDによるトライアル↓
f0158244_10315996.jpg
 ImageMagickの方が絵はいいのですが,(意図している)処理が完了出来ないのでは,あきらめるしかないようです。
 それにしても,サムネイル生成の4枚で,処理が止まってしまうサーバーって,なに(笑
 安いサーバーには安い理由があるにしても,これじゃなぁ...

 この画像閲覧システムは,(一般公開せずに)当方と面識のある方だけのクローズ環境で使っているので,画が悪くても支障はないです。
 ひとつだけ気になるところは,モデルさんにWebで写真を見てもらう時にも使っているので,最初に見るのが,このサムネイルになることですかね。
 最初から,あのガジャガジャではなぁ~
 この件は,当分の間,様子をみて,支障があるなら,他の無料のアルバムシステムを使うことにしたいと思います。

 あと,誤解のないように明記しておきますが,ImageMagick自体がダメだと申し上げているのではありません。当方が契約しているレンタルサーバー(厳密には新構成のサーバー)では,このような事象となったというだけのことです。

 細かいことはありましたが,ひとまず,めどは立ったかな。

p.s
 ImageMagickって,ICCプロファイルを読めることを今回知りました。
 ほーー。
 けど,自分の画像は,プロファイル埋め込み済みなので,ご利益ないな(苦笑
[PR]
by rainbow-5 | 2010-06-26 10:47 | 日記 | Comments(0)


<< 本日,見たもの YouTubeで見つけたもの >>