这个来自lpmj.net的函数会扭曲图像吗?


Is this function from lpmj.net distorting the 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);
    }

最后一个条件只应该在$h = $w并且两者都> $max的情况下执行。

第一个条件仅在$w大于$h并且需要调整其大小时触发。第二个只在$h大于$w时触发,并且需要调整图像的大小。因此,第三个条件只是检查图像是否需要调整大小($w> $max)。如果是这样,您可以放心地假设$w = $h,因为前面两个条件都没有触发(也就是说,$w并不大,$h也不大)。它们一定是相等的)。

只剩下$w和$h小于$max的条件。这里不需要调整大小,所以我们不需要捕捉这些条件。

希望这是有意义的!