下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
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; }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。