2011-08-06 3 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보다 크면 이미지의 크기를 조정해야합니다. 따라서 세 번째 조건은 이미지 크기를 조정해야하는지 여부를 확인하기 만합니다 ($ w> $ max). 만약 그렇다면 $ w = $ h로 간주 할 수 있습니다. 왜냐하면 앞의 두 조건 중 어느 것도 실행되지 않았기 때문입니다 ($ w는 크지 않았고 $ h는 크지 않았 음을 의미합니다).

나머지 조건은 $ w와 $ h가 $ max 미만인 조건과 관련이 있습니다. 크기 조정은 여기서 수행 할 필요가 없으므로 이러한 조건을 파악하는 데 신경 쓰지 않습니다.

희망이 맞습니다!

관련 문제