<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_61759"> <div class="blockcode"> <div id="code_eZy"><ol> <li>functionscale_dimensions_within_limits($w,$h,$max_w,$max_h){</li> <li> // $w は現在の四角形の幅 </li> <li> // $h は現在の四角形の高さ </li> <li> // $max_w は画像のサイズを変更できる最大の幅 </li> <li> // $max_h は画像のサイズを変更できる最大の高さ </li> <li> <li> // **** ここからが魔法の始まりです **** </li> <li> // horiz の概念を切り替えます/垂直/正方形から長辺/短辺へ </li> <li> $short_side_len = ($w $long_side_len = ($w > $h ? $w : $h); </li> <li> // 出力変数の変数名を変数に設定します</li> <li> $ssvar = ($w > $h ? 'h':'w'); </li> <li> $lsvar = ($w > $h ? 'w':'h'); </li> <li> $maxLSvar = "max_".$lsvar; </li> <li> $maxSSvar = "max_".$ssvar; </li> <li> <li> // 長辺で最初のパスを実行します</li> <li> $ratio = $$maxLSvar/$long_side_len; </li> <li> $newSS =round($short_side_len * $ratio); </li> <li> $newLS =round($long_side_len * $ratio); </li> <li> <li> // *** 注 - 唯一の条件ブロックです!</li> <li> // 短辺がまだ制限を超えている場合は、短辺を制限して調整します </li> <li> if($newSS > $$maxSSvar){ </li> <li> $ratio = $$ maxSSvar/$newSS; </li> <li> $newLS =round($ratio*$newLS); </li> <li> $newSS = $$maxSSvar; </li> <li> } </li> <li> <li> // **** ここで魔法は終わります **** </li> <li> // h/w (または w/h) をロング/ショートサイドの対応する部分と再結合します </li> <li> // $$ は変数であることを意味します変数 (動的代入) </li> <li> $$ssvar = $newSS; </li> <li> $$lsvar = $newLS;</li> <li> <li> // 戻り配列を準備します </li> <li> $dimensions['w'] = $w; // これは $ssvar または $lsvar から導出されます </li> <li> $dimensions['h'] = $h; $dimension を返します。 </li> <li>}</li> </ol></div> <em onclick="copycode($('code_eZy'));">复制代</em> </div> <br> </td></tr></table> <div class="ptg mbm mtn"> PHP</div> <div id="comment_61759" class="cm"> </div> <div id="post_rate_div_61759"></div> <br><br>