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

Naoki Tomita Naoki Tomita April 7th, 2008 #perl

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

Imager::Filter::Bakumatsu

書いたフィルタの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