nitoyonさんのブログ で 幕末古写真ジェネレーター の内部処理と as での実装方法が検証されていたので、Perl で Imager のフィルタモジュールにしてみた。
テストページはこちら
http://bakumatsu.koneta.org/
書いたフィルタの Imager::Filter::Bakumatsu は、nitoyon さんのエントリをそのままなぞったつもりです。が、Imager に flash.filters.ColorMatrixFilter のオフセットに相当するものがない(と思う)ので、これだけに XS 書くのもたいへんなんで明るくしてから上と下を削るみたいな感じでやってみた。
Imager::Filter::Bakumatsu のソースは coderepos のこのへんです。
use Imager;
use Imager::Filter::Bakumatsu;
my $img = Imager->new;
$img->read(file => 'photo.jpg') or die $img->errstr;
$img->filter(type => 'bakumatsu'); # 幕末化
$img->write(file => 'photo-bakumatsu.png');
な感じで使えます。使う人いるかわかりませんが。
サンプル。元の写真↓
今回書いた Imager::Filter::Bakumatsu による幕末↓
nitoyon さんの as による実装による幕末↓
オリジナルの幕末古写真ジェネレーターによる幕末↓
モジュールとして Bakumatsu という名前はいかがなものかと思うのだけど、こういう写真は英語圏の人は何て呼ぶんだろうか。
追記:
英語の Wikipedia に幕末という項目 があったので、Imager::Filter::Bakumatsu で CPAN に UP
「ピザが届く」の方ですよね?
取り上げてくれてかなり感動です…。
はい。「ピザが届く」の者です。笑
こちらこそ、craran さんが和物が好きというモチベーションで作りあげたことに感動しました。