Imager による幕末写真フィルタ

nitoyon さんのブログ幕末古写真ジェネレーター の内部処理と as での実装方法が検証されていたので、Perl で Imager のフィルタモジュールにしてみた。

Imager による幕末フィルタ

書いたフィルタの Imager::Filter::Bakumatsu は、nitoyon さんのエントリをそのままなぞったつもりです。が、Imager に flash.filters.ColorMatrixFilter のオフセットに相当するものがない(と思う)ので、これだけに XS 書くのもたいへんなんで明るくしてから上と下を削るみたいな感じでやってみた。ソースは coderepos のこのへんです。

use Imager;
use Imager::Filter::Bakumatsu;

my $img = Imager->new;
$img->read($filename) or die $img->errstr;
$img->filter(type => 'bakumatsu');
$img->write(type => 'jpeg', file => 'new.jpg');

な感じで使えます。使う人いるかわかりませんが。

サンプル。元の写真↓

P1020751

今回書いた Imager::Filter::Bakumatsu による幕末

bakumatsu-imager-filter-bakumatsu

nitoyon さんの as による実装による幕末↓

bakumatsu-nitoyon

オリジナルの幕末古写真ジェネレーターによる幕末↓

bakumatsu-crara-original

モジュールとして Bakumatsu という名前はいかがなものかと思うのだけど、こういう写真は英語圏の人は何て呼ぶんだろうか? → 英語の Wikipedia に幕末という項目 があったので、Imager::Filter::Bakumatsu で CPAN に UP