PHP compressed images
Release: 2016-07-25 08:45:11
Original
978 people have browsed it
- 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;
- }
复制代码
|
PHP
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
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