| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
phpde1
10年前发布

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_side_len = ($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;   }