将图像重新调整为新的高度和宽度,但不要超过原始高度和宽度

时间:2018-01-04 16:34:35

标签: php image laravel resize

在PHP中需要将图像调整为新的高度和宽度但不要跨越原始图像。示例我需要将图像大小调整为200 * 200.但实际上,图像大小为150 * 150然后调整大小不发生。

  • 如果图像尺寸为300 * 300,则需要调整为200 * 200。
  • 如果图像尺寸为300 * 150,则会调整为200 * 150。

任何人都可以帮助解决这个问题。如果有任何插件可用

1 个答案:

答案 0 :(得分:1)

这里有一些伪代码,可以说明逻辑的可能路径:

function resizeMyImage($incImage){
  $imageRatio;
  $maxSize = 200;
  $originalX;
  $originalY;
  $newX;
  $newY;

  $newX = $originalX = imageSize.x;
  $newY = $originalY = imageSize.y;
  $imageRatio = imageSize.x / imageSize.y;

  if($imageRatio >= 1){
   // height is greater than (or equal to) width
   if($newX > $maxSize){
     return false;
   }else{
     $newX = $maxSize;
     $newY = $newX / $imageRatio;
   }
  }else{
   // width is greater than height
   if($newY > $maxSize){
     return false;
   }else{
     $newY = $maxSize;
     $newX = $newY * $imageRatio;
   }
  }
  resizeTheImage($newX,$newY);
}

这是伪代码并且不起作用,但它是在保持宽高比的同时调整具有最大宽度或高度的图像的快速示例。

我会查看您的代码并编写一个可行的示例,但您没有提供任何代码。我希望这会有所帮助。