use Image::Magick; my $image = Image::Magick->new; #новый проект my $x = $image->Read("photo.jpg"); #открываем файл my ($ox,$oy)=$image->Get('base-columns','base-rows'); #определяем ширину и высоту изображения my $nx=int(($ox/$oy)*150); #вычисляем ширину, если высоту сделать 150 $image->Resize(geometry=>geometry, width=>$nx, height=>150); #Делаем resize (изменения размера) if($nx > 200) { #Если ширина получилась больше 200 my $nnx = int(($nx-200)/2); #Вычисляем откуда нам резать $image->Crop(x=>$nnx, y=>0); #Задаем откуда будем резать $image->Crop('200x150'); #С того места вырезаем 200х150 } $x = $image->Write("photo.jpg"); #Сохраняем изображение.
$image->Resize(geometry=>geometry, width=>$nx, height=>150);
должно выглядить как
$image->Resize(width=>$nx, height=>150);
это баг самого Magick'a .