/usr/bin/convert $sourceFilePath -resize $size -background white -gravity center -extent $size $newFilePath
/usr/bin/convert /tmp/test.jpg -resize 500x500 -background white -gravity center -extent 500x500 /tmp/test_500x500.png
意為将test.jpg縮放(縮小或補充)為500x500px 圖檔居中,背景白色
這樣圖檔出來後一定是500x500的圖檔,放在500x500的div裡面就正好合适且居中
若不加 -extent 500x500 則圖檔就等比縮放,圖檔最後尺寸可能不會是500x500,放在500x500的div裡面就會靠左或靠上
===============================
php計算等比寬高:
/**
限制圖檔寬和高在一個範圍内
檔案全路徑,包括檔案名,傳入限制的寬 和 高 0為不限制
傳回按等比計算限制之後的寬和高
*/
public static function getLimitWH($sourceWidth, $sourceHeight, $maxWidth=0, $maxHeight=0){
//$imgInfo = getimagesize($fileName);
$maxWidth = min($sourceWidth, $maxWidth);
$maxHeight = min($sourceHeight, $maxHeight);
if ($maxWidth && $maxHeight) {//寬高都限制
$tmp_width = intval($sourceWidth*$maxHeight/$sourceHeight);//先按高計算寬
if ($tmp_width > $maxWidth){//如果算出來超出了限制
$maxHeight = intval($sourceHeight*$maxWidth/$sourceWidth);//則按寬計算高
}else{
$maxWidth = $tmp_width;
}
} elseif ($maxWidth) {//隻限制寬
$maxHeight = intval($sourceHeight*$maxWidth/$sourceWidth);//按寬算高
} elseif ($maxHeight) {//隻限制高
$maxWidth = intval($sourceWidth*$maxHeight/$sourceHeight);//按高算寬
}
return array($maxWidth, $maxHeight);
}
版權聲明:本文為CSDN部落客「weixin_34253126」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34253126/article/details/91953202