ImageMagick の convert を使って

また tDiary の image.rb を改造しようって企んでいるのですが。
デジカメ写真とかをアップロードするところで、画像のリサイズをしたファイルを保存するようにしてそれを公開するのが良いのでは、って思いだして。 デジカメで撮るときには VGA とか 1280x960 とかのサイズで撮影するのだが、日記に載せるときとなるともっぱら 320x240 とかのサイズになるわけで。 でもページ表示のときに使っている画像のファイルは 640x480 のままになっていて、Web サーバのトラフィックの無駄遣いな気がしてしかたないの。


で、プログラム的には、こんなふうに変更すると良いのだろう。



  • HTML の UI的に「アップロード画像をリサイズをするのかどうか」っていうチェックボックスを追加する

  • ファイルがアップロードされるときに、上のチェックボックスがマークされているかどうかを判定して、マークされている場合はリサイズ処理を行なうように、チェックされていない場合は今までどおりな処理を。

  • リサイズするときには、ImageMagick の convert でも使いましょう


で、マニュアルをさらっと読んだ感じでの convert の使いかたはこんな感じでして。


convert -resize (width)x(height) infile.jpg outfile.jpg

っていうのを見て、「convert に食わせる入力ファイルって、どこぞに temporary file 作って、あとで消さなきゃいけないのか。マンドクセー」と思ったわけで。 で、実験してみたところ、入力ファイルを stdin にするっていう技が convert で有効だった。 こんな感じに動かすのですが。


cat infile.jpg | convert -resize (width)x(height) - outfile.jpg

ここでの outfile は、リサイズ機能を使わない場合の保存するファイル名と同じ文字列になるので、特に temporary file な処理は不要ってことになるはず。


とりあえず下調べが終わった感じなので、近いウチにゴリっとコードを書きますか。

コメント

このブログの人気の投稿

パスワードを覚えるのも無理があるから、パスワードマネージャ使いましょう。

大型特殊自動車免許を取った時の話。

車両系建設機械運転者(整地) の講習