« FedoraのMIMEタイプと拡張子の関係付け | Home | 画像を切手風に加工するサービス »

[Perl]   perlでポラロイド風に画像加工

最近、またImageMagickをさわる機会があったので、ちまたで人気のPolaroizeと同じことがPerkMagickでできんかとこの辺を参考に試してみました。

手元にまともなImageMagickが使える公開サーバーがなかったのでスクリプトだけ。
Fedora Core 6の
ImageMagick-6.2.8.0-3.fc6.1
ImageMagick-perl-6.2.8.0-3.fc6.1
で試しました。

poralize.pl
use strict;

use Image::Magick;

my $input  = 'image.jpg';
my $output = 'polaroid.jpg';

my $img = Image::Magick->new;
$img->Read($input);
$img->Border( width => 10, height => 10, color => '#f0f0ff' );
$img->Set( 'background' => 'none');
my $amplitude  = $img->Get('columns') * 0.01;
my $wavelength = $img->Get('rows') * 2;
$img->Rotate(90);
$img->Wave( amplitude => $amplitude, wavelength => $wavelength );
$img->Rotate(-90);

my $shadow = $img->Clone;
$shadow->Flop;
$shadow->Colorize( fill => 'grey75', opacity => '100%' );
$shadow->Set( background => 'white' );
$shadow->Border( width => 10, height => 10, color => 'white' );
$shadow->Blur( radius => 0, sigma => 3 );

$shadow->Composite(
    image   => $img,
    x       => ( $amplitude / 2 ) * -1,
    y       => 5,
    compose => 'Over'
);
$shadow->Rotate(-5);
$shadow->Trim;

$shadow->Write($output);

結果、これが

2007020601.jpg

こんな感じ。

polaroid.jpg

あまりに古いImageMagickだと動かないかもしれません。

ちなみにImageMagick6.3.2以降だとPolaroidメソッドが追加されていて、こんな面倒なことをしなくても一発でポラロイドなエフェクトをかけられ、しかも文字まで入れれるようです。

が・・・手元ではうまいこと動かなかったので割愛。
誰か試してください。

Trackbacks:

このエントリーのトラックバックURL:

Comments (1)

f1ja0k42s1ynqmwr

でポラロイド風に画像加工

コメントを投稿