PHP圧縮画像

WBOY
WBOYオリジナル
2016-07-25 08:45:11995ブラウズ
  1. functionscale_dimensions_within_limits($w,$h,$max_w,$max_h){
  2. // $w は現在の四角形の幅
  3. // $h は現在の四角形の高さ
  4. // $max_w は画像のサイズを変更できる最大の幅
  5. // $max_h は画像のサイズを変更できる最大の高さ
  6. // **** ここからが魔法の始まりです ****
  7. // horiz の概念を切り替えます/垂直/正方形から長辺/短辺へ
  8. $short_side_len = ($w $long_side_len = ($w > $h ? $w : $h);
  9. // 出力変数の変数名を変数に設定します
  10. $ssvar = ($w > $h ? 'h':'w');
  11. $lsvar = ($w > $h ? 'w':'h');
  12. $maxLSvar = "max_".$lsvar;
  13. $maxSSvar = "max_".$ssvar;
  14. // 長辺で最初のパスを実行します
  15. $ratio = $$maxLSvar/$long_side_len;
  16. $newSS =round($short_side_len * $ratio);
  17. $newLS =round($long_side_len * $ratio);
  18. // *** 注 - 唯一の条件ブロックです!
  19. // 短辺がまだ制限を超えている場合は、短辺を制限して調整します
  20. if($newSS > $$maxSSvar){
  21. $ratio = $$ maxSSvar/$newSS;
  22. $newLS =round($ratio*$newLS);
  23. $newSS = $$maxSSvar;
  24. }
  25. // **** ここで魔法は終わります ****
  26. // h/w (または w/h) をロング/ショートサイドの対応する部分と再結合します
  27. // $$ は変数であることを意味します変数 (動的代入)
  28. $$ssvar = $newSS;
  29. $$lsvar = $newLS;
  30. // 戻り配列を準備します
  31. $dimensions['w'] = $w; // これは $ssvar または $lsvar から導出されます
  32. $dimensions['h'] = $h; $dimension を返します。
  33. }
复制代

PHP


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。