画像の角度を指定し回転する [その1]
ImageMagickを使用し、画像の角度を指定し、その角度分回転させたい。FlipメソッドとFlopメソッドはそれぞれ180度の回転しかできないが、Rotateメソッドを用いれば自由に角度を調整できる。
| ○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);
#-- 画像を保存する(JPEG) --#
$image->Write("./image_$degree.jpg");
#-- オブジェクト削除 --#
undef $image;
}
以下が実行結果。
特に気をつけたいのは、実行結果を見て分かる通り、画像の縦横のサイズが固定され、その中で回転をする点。そのため角度によってその縦横のサイズ内で拡大や縮小が行われる。少々クセの強い処理という点にご注意。
- 0度回転

- 30度回転

- 60度回転

- 90度回転

- 120度回転

- 150度回転

- 180度回転

- 210度回転

- 240度回転

- 270度回転

- 300度回転

- 330度回転

- 360度回転



