php 按比例生成小圖函數

來源:互聯網
上載者:User
關鍵字 網路程式設計 PHP教程

php教程按比例生成小圖函數
<?php
class My_Lib_Functions {
# ********************************************
# 物件轉陣列
# ********************************************
function object2array ($obj) {
foreach ($obj as $k => $v) {
$arr[$k] = $v;
unset($v);
}
return $arr;
}




// ********************************************


// 獲取限定區間內的圖片寬高


//$mx :圖像在頁面上顯示的寬度


//$my :圖像在頁面上顯示的高度


//此處縮略圖按星號調整的原理為x/y = $mx / $my;


// **********************************************


function getPicXY($picurl, $mx = 0, $my = 0){


    if (!$size = @GetImageSize($picurl)) return false;  GetImageSize用來測定任何圖像大小並返回圖像的尺寸以及檔案類型和一個用於普通HTML檔中&lt;IMG&gt;標記中的height/width文本字串


if ($mx == 0 &amp;&amp; $my == 0) return $size;     當$mx與$my參數的值為零時,返回圖像的大小


    if ($mx * $size[1] / $size[0] &gt; $my){     //判斷當$mx乘以圖像本身的高度再除以圖像的寬度大於在頁面上顯示的圖像寬度時    


        $newXY[0] = $my * $size[0] / $size[1];    設置產生新圖像的寬度為$mx的值乘以圖像本身的寬度再除以圖像本身的高度


        $newXY[1] = $my;         設置產生的新圖像的高度為頁面圖像顯示的高度


    }else{             //判斷當$mx乘以圖像本身的高度再除以圖像的寬度不大於在頁面上顯示的圖像寬度時    


        $newXY[0] = $mx;         設置產生的新圖像的寬度為頁面圖像顯示的寬度


$newXY[1] = $mx * $size[1] / $size[0];    設置產生新圖像的寬度為$mx的值乘以圖像本身的高度再除以圖像本身的寬度


    }


    if ($size[0] &lt;= $my and $size[1] &lt;= $mx){    //判斷當圖像本身的寬度小於等於頁面上顯示圖像的寬度且圖像本身的高度小於等於頁面上顯示圖像的高度


        $newXY[0] = $size[0];        設置圖像新產生的寬度為圖像本身的寬度


        $newXY[1] = $size[1];        設置圖像新年產的高度為圖像本身的高度


    }


 return $newXY;           返回圖像的新比例


}

function getNewImageWH2 ($imageUrl, $maxWidth = 0, $maxHeight = 0, &$newWidth = 0, &$newHeight = 0){
     if (!$imageSize = @GetImageSize($imageUrl)) return false;
    if ($maxWidth == 0 || $maxHeight == 0) {
        $newWidth& nbsp; = $imageSize[0];
        $newHeight = $imageSize[1];
 } else {
        $newWidth  = $maxWidth;
         $newHeight = $newWidth * $imageSize[1] / $imageSize[0];
        if ($newHeight < $maxHeight) {
     & nbsp;      $newHeight  = $maxHeight;
            $newWidth = $newHeight * $imageSize[0] / $ imageSize[1];
        }
        $imageSize[0] = $newWidth;
        $imageSize[1] = $newHeight;
    }
    return $imageSize;
}


}
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.