2011-08-06 7 views
0
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); 
    } 

答えて

0

最終条件は、$ h = $ wで、両方が> $ maxの場合にのみ実行する必要があります。

$ wが$ hより大きく、サイズを変更する必要がある場合のみ、最初の条件が発生します。 $ hが$ wより大きい場合にのみ2番目のメソッドが起動し、イメージのサイズを変更する必要があります。したがって、3番目の条件は、イメージのサイズを変更する必要があるかどうかを確認するだけです($ w> $ max)。そうであれば、前の2つの条件のいずれも起動していないので、$ w = $ hと仮定することができます($ wは大きくなく、$ hは大きくない)。

残っている条件は、$ wと$ hが$ max未満のものだけです。ここではリサイズする必要はないので、私たちはそれらの条件を捕まえても構いません。

希望は意味があります!

関連する問題