Hatena::ブログ(Diary)

にっきちょう

Wednesday, December 20, 2006

モジュール

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

インターフェース

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

$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}); # そもそも移動するよりも最初からその場所に作成したほうがいい?

こんな感じ?

文字コード

あれ、Shift_JISじゃなくて、CP932のほうがいいんじゃないか? 昔チャットログのコンバータ書いたときにWAVE DASH - FULL WIDTH TILDE問題ではまったことがあるような。

追記 [13:01]

全部grepで探し出して、cp932に書き直し。

文字コードの件

直した。

my $charset = eval { Tangerine->_config->val(qw/Global charset cp932/) };
   $charset = 'cp932' if $@;

あとはこれでShift_JIS決め打ちになってるところを$charsetを使うように置き換えるだけ。