PerlMagickをインストールした
テストついでに http://0xcc.net/unimag/11/ を参考に
ドロップシャドウの部分を自分用に改造してみた。
$magick はグローバル変数にして画像読み込み時に
$image->Get('magick') で取得するように変更している。
sub draw_blur_shadow { my ($image) = @_; my ($width, $height) = $image->Get('width', 'height'); my $width2 = $width + $shadow_width; my $height2 = $height + $shadow_width; if($magick eq "GIF" || $magick eq "PNG") { # 透過色を設定する。 $image->Set(bordercolor => '#facade'); } else { $image->Set(bordercolor => 'white'); } my $shadow = Image::Magick->new; $shadow->Set(size=>"${width2}x${height2}"); $shadow->ReadImage('xc:white'); my $x = $width - 15; my $y = $height - 15; my $width3 = $width + 1; my $height3 = $height + 1; $shadow->Draw(primitive=>'rectangle', points=>"$x,5 $width3,$height3", stroke=>$shadow_color, fill=>$shadow_color); $shadow->Draw(primitive=>'rectangle', points=>"5,$y $width3,$height3", stroke=>$shadow_color, fill=>$shadow_color); $shadow->GaussianBlur(radius=>5, sigma=>3); $shadow->Composite(image=>$image, compose=>'Over', x=>0, y=>0); @$image = @$shadow; }