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檔中<IMG>標記中的height/width文本字串
if ($mx == 0 && $my == 0) return $size; 當$mx與$my參數的值為零時,返回圖像的大小
if ($mx * $size[1] / $size[0] > $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] <= $my and $size[1] <= $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;
}
}
?>