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的条件。这里不需要调整大小,所以我们不需要捕捉这些条件。
希望这是有意义的!