Этот код поместит любое изображение в поле maxWidth x maxHeight, сохраняя соотношение сторон и отступы на белом фоне.
$img = new Imagick('orig.jpg');
$maxWidth = 100;
$maxHeight = 50;
$geom = $img->getImageGeometry();
$fitWidth = (($maxWidth/$geom['width'])<($maxHeight/$geom['height']))?true:false;
if($fitWidth){
$img->thumbnailImage($maxWidth,0,false);
}else{
$img->thumbnailImage(0,$maxHeight,false);
}
$canvas = new Imagick();
$canvas->newImage($maxWidth,$maxHeight,'white','jpg');
$geom = $img->getImageGeometry();
$x = ($maxWidth-$geom['width'])/2;
$y = ($maxHeight-$geom['height'])/2;
$canvas->compositeImage($img,imagick::COMPOSITE_OVER,$x,$y);
$canvas->writeImage('thumb.jpg');