PerlMagickで画像の大きさを変更する(Image::Magick)

画像大きさ変更するには、Resizeを使います。

Resize画像大きさ変更する

Resizeメソッドでは、変更したい横と縦の大きさをパラメータとして渡します。
また、画像の鮮明度を指定する"blur"パラメータもよく利用します。

use strict;
use Image::Magick;
my $file = 'sample.jpg';
my $ratio = 0.75; # 比率75%
my $image = new Image::Magick;
$image -> Read( $file );
my( $width, $height ) = $image -> Get( 'width', 'height' );
$image -> Resize(
	width  => int( $width  * $ratio ),
	height => int( $height * $ratio ),
	blur   => 0.8,
);
$image -> Set( quality => 80 );
$image -> Write( 'jpeg:sample_after.jpg' );
undef $image;
exit;

"Resize"メソッドには、箱にもいくつかのパラメータが用意されています。
Manipulate an Imageには、以下のパラメータが紹介されています。

Method Parameters Description
Resize geometry=>geometry,
width=>integer,
height=>integer,
filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc},
support=>double,
blur=>double
scale image to desired size. Specify blur > 1 for blurry or < 1 for sharp

パラメータ"blur"についてのみ、説明があります。
"blur"の値が1より大きい場合は曖昧(ぼかし)に、小さいと鮮明(シャープ)になります。
個人的に"blur"の値は0.8を愛用しています。

補足

比率のみを指定して大きさ変更するメソッドがあると便利だと思います。
関連して、指定した大きさに収めてくれるモジュール、Image::Magick::Thumbnail::Simpleを作りました。

更新履歴

2008-06-04
公開

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です