这个来自lpmj.net的函数是否扭曲了图像?

时间:2011-08-06 18:01:51

标签: php image

  if ($typeok)
    {
    list($w, $h) = getimagesize($saveto);   
    $tw  = $w;
    $th  = $h;
    $max = 100; 
    if($w > $h && $max < $w)
      {
      $th = $max / $w * $h;     
      $tw = $max;
      }
    elseif ($h > $w && $max < $h)   
      {
      $tw = $max / $h * $w;     
      $th = $max;
      }
    elseif ($max < $w)  
      {
      $tw = $th = $max; 
      }
      $tmp = imagecreatetruecolor($tw, $th);    
      imagecopyresampled($tmp, $src, 0, 0, 0, 0, $tw, $th, $w, $h);
      imageconvolution($tmp, array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1)), 8, 0);
      imagejpeg($tmp, $saveto); 
      imagedestroy($tmp);
      imagedestroy($src);
    }

1 个答案:

答案 0 :(得分:0)

最终条件只应在$ h = $ w并且两者都是&gt;的情况下执行。 $最大

第一个条件仅在$ w大于$ h时触发,并且需要调整大小。第二个只会在$ h大于$ w时触发,并且图像需要调整大小。因此,第三个条件只是检查图像是否需要调整大小($ w> $ max)。如果确实如此,你可以放心地假设$ w = $ h因为前两个条件都没有被触发(意思是,$ w不是更大,$ h不是更大。它们必须相等)。

唯一剩下的条件涉及$ w和$ h小于$ max的条件。这里不需要调整大小,所以我们不打扰这些条件。

希望有意义!