Imagick用填充调整图像大小

时间:2016-04-10 19:29:47

标签: php image image-processing imagemagick imagick

我写了一个函数,应该将图像调整到框中,并在图像的顶部和底部添加白色填充

 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); 

图像的顶部被切断,不确定我做错了什么

0 个答案:

没有答案