PHP壓縮圖片

phpde1 9年前發布 | 952 次閱讀 PHP

function scale_dimensions_within_limits($w,$h,$max_w,$max_h){
  // $w is the width of the current rectangle 
  // $h is the height of the current rectangle 
  // $max_w is the maximum width that an image can be sized 
  // $max_h is the maximum height that an image can be sized

// Here's where the magic is starts // Switch the concept of horiz/vertical/square to long/short side $short_side_len = ($w < $h ? $w : $h); $long_sidelen = ($w > $h ? $w : $h); // Set a variable to the variable name of the output variable $ssvar = ($w > $h ? 'h':'w'); $lsvar = ($w > $h ? 'w':'h'); $maxLSvar = "max".$lsvar; $maxSSvar = "max_".$ssvar;

// Do the first pass on the long side $ratio = $$maxLSvar/$long_side_len; $newSS = round($short_side_len $ratio); $newLS = round($long_side_len $ratio);

// ** Note - the only coditional block! // If short side is still out of limit, limit the short side and adjust if($newSS > $$maxSSvar){ $ratio = $$maxSSvar/$newSS; $newLS = round($ratio$newLS); $newSS = $$maxSSvar; }

// Here's where the magic ends // Re-couple the h/w (or w/h) with the long/shortside counterparts // $$ means it's a variable variable (dynamic assignment) $$ssvar = $newSS; $$lsvar = $newLS;

// Prep the return array $dimensions['w'] = $w; // this is derived from either $ssvar or $lsvar $dimensions['h'] = $h; return $dimensions; }</pre>

 本文由用戶 phpde1 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!