我写了一个函数,应该将图像调整到框中,并在图像的顶部和底部添加白色填充
public function resizeToBox($MAX_SIZE, $path) {
$im = new \Imagick($this->fullPath);
$width=$this->width;
$height=$this->height;
if($width > $MAX_SIZE || $height > $MAX_SIZE) {
$aspect = $width / $height;
if($width > $height) {
$width = $MAX_SIZE;
$height = intval($MAX_SIZE / $aspect);
} else {
$height = $MAX_SIZE;
$width = intval($MAX_SIZE * $aspect);
}
}
$offsetX = intval(($MAX_SIZE - $width)/2);
$offsetY = intval(($MAX_SIZE - $height)/2);
$im->resizeImage($width, $height, \imagick::FILTER_LANCZOS, 0.9, true);
$im->cropImage ($MAX_SIZE, $MAX_SIZE, 0,0);
$im->setGravity(\imagick::GRAVITY_CENTER);
$im->setImageBackgroundColor('white');
$im->extentImage($MAX_SIZE,$MAX_SIZE,$offsetX ,$offsetY);
$resizePath = $path. "/" . $this->name . "." . $this->imageMime;
$im->writeImage( $resizePath);
}
当我做的时候
$im->extentImage($MAX_SIZE,$MAX_SIZE,0 , 0);
我的图片停留在左上角 当我做的时候
$im->extentImage($MAX_SIZE,$MAX_SIZE,$offsetX ,$offsetY);
图像的顶部被切断,不确定我做错了什么