画像の角度を指定し回転する その2 - Perl,ImageMagick

ImageMagickを使用し、画像の角度を指定し、その角度分回転させたい。基本的にはその1と同じ要件だが、今回は回転した際に発生する余白に色をつけたい。

実行例

※サンプル画像は有料の素材集を利用しています。転載はおやめください。

befor after
オリジナル画像

サンプル

#!/usr/bin/perl

;#
;#角度を指定し、画像を回転する(背景に色)
;#

use Image::Magick;

#-------------------------------------------#
#初期設定
#-------------------------------------------#
#-- 元画像 --#
my $source = './sample_org1_s.jpg';

#-- 回転する角度 --#
my @list = (
    0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360
);


#-------------------------------------------#
#画像を30度ずつ回転する
#-------------------------------------------#
foreach my $degree (@list){
        #-- インスタンス生成 --#
        my $image = Image::Magick->new;

        #-- 画像を読込む --#
        $image->Read($source);

        #-- 回転 --#
        $image->Rotate(degrees=>$degree, color=>'red');

        #-- 画像を保存する(JPEG) --#
        $image->Write("./image_$degree.jpg");

        #-- オブジェクト削除 --#
        undef $image;
}

実行例一覧

以下が実行結果。

ここでは赤のみの使用だが、色は自由につけることができる。回転する度に色を変更するなんてことも可能。なお、余白が発生しない場合にはcolorを指定しても何も変化はない。

角度 画像
0度 0度回転した画像
30度 30度回転した画像
60度 60度回転した画像
90度 90度回転した画像
120度 120度回転した画像
150度 150度回転した画像
180度 180度回転した画像
210度 210度回転した画像
240度 240度回転した画像
270度 270度回転した画像
300度 300度回転した画像
330度 330度回転した画像
360度 360度回転した画像