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 な処理は不要ってことになるはず。
とりあえず下調べが終わった感じなので、近いウチにゴリっとコードを書きますか。
コメント
コメントを投稿