PHP圧縮画像
リリース: 2016-07-25 08:45:11
- functionscale_dimensions_within_limits($w,$h,$max_w,$max_h){
- // $w は現在の四角形の幅
- // $h は現在の四角形の高さ
- // $max_w は画像のサイズを変更できる最大の幅
- // $max_h は画像のサイズを変更できる最大の高さ
-
- // **** ここからが魔法の始まりです ****
- // horiz の概念を切り替えます/垂直/正方形から長辺/短辺へ
- $short_side_len = ($w $long_side_len = ($w > $h ? $w : $h);
- // 出力変数の変数名を変数に設定します
- $ssvar = ($w > $h ? 'h':'w');
- $lsvar = ($w > $h ? 'w':'h');
- $maxLSvar = "max_".$lsvar;
- $maxSSvar = "max_".$ssvar;
-
- // 長辺で最初のパスを実行します
- $ratio = $$maxLSvar/$long_side_len;
- $newSS =round($short_side_len * $ratio);
- $newLS =round($long_side_len * $ratio);
-
- // *** 注 - 唯一の条件ブロックです!
- // 短辺がまだ制限を超えている場合は、短辺を制限して調整します
- if($newSS > $$maxSSvar){
- $ratio = $$ maxSSvar/$newSS;
- $newLS =round($ratio*$newLS);
- $newSS = $$maxSSvar;
- }
-
- // **** ここで魔法は終わります ****
- // h/w (または w/h) をロング/ショートサイドの対応する部分と再結合します
- // $$ は変数であることを意味します変数 (動的代入)
- $$ssvar = $newSS;
- $$lsvar = $newLS;
-
- // 戻り配列を準備します
- $dimensions['w'] = $w; // これは $ssvar または $lsvar から導出されます
- $dimensions['h'] = $h; $dimension を返します。
- }
复制代
|
PHP
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31