インターフェース

これが決まらないことにはコードが書けない。どうしよっかなぁ。いま妄想してるのをコードに落としてみる。

$img = Foo->new(file => 'bar.jpg');
# $img = Foo->new(filehandle => $fh); # ファイルハンドル渡し
($width, $height, $size) = $img->get(qw/witdh height size/);
# こんなのでもいい?
# これはAUTOLOADで作る手もありかもだけど、そこまでするくらいなら上のほうがいいか。
# $width  = $img->width;
# $height = $img->height;
# $size   = $img->size;
$img->rename(hash => 'SHA256'); # ハッシュ関数に渡してダイジェストでリネーム。重複させない。
$thm = $img->thumbnail(width => 200, height => 200); # 最大サイズ。比率を保って縮小。
$thm->write(); # bar.thumb.jpgに出力
$thm->write(file => 'hoge.jpg'); #fileキーに指定してやればそのファイル
$img->move($path{file});
$thm->move($path{thumbnail}); # そもそも移動するよりも最初からその場所に作成したほうがいい?

こんな感じ?

モジュール

ひたすらインストール。ついでにppmパッケージにまとめて保管。たぶん30個くらいやったと思う。Tangerineのインターフェースは下のでほぼ確定だけど、今日はもう疲れたからまた明日。